[英]Execute in php .sh file
我試圖在php中執行一個.sh文件
該文件位於/home/update.sh
#!/bin/bash
/usr/bin/rsync -zaP '-e ssh -i /home/id_rsa_ws -v -p 6633' --del /var/www root@xxx.xxx.xxx:/var/
執行此文件運行良好:
cd /home/; ./update.sh;
問題是:我需要在php中執行此文件
我已經在php中嘗試過的內容:
1-什么也沒發生。
$contents = file_get_contents('/home/distribute.sh');
echo '<pre>';
echo shell_exec($contents);
我也試過了:
2。
exec("cd /home/;./update.sh 2>&1",$o,$return);
print_r($o);
print_r($return);
Array
(
[0] => OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dec 2017
[1] => debug1: Reading configuration data /etc/ssh/ssh_config
[2] => debug1: /etc/ssh/ssh_config line 19: Applying options for *
[3] => debug1: Connecting to xxx.xxx.xxx.xxx [xxx.xxx.xxx.xxx] port 6633.
[4] => debug1: Connection established.
[5] => debug1: identity file /var/www/.ssh/id_rsa_ws type 0
[6] => debug1: key_load_public: No such file or directory
[7] => debug1: identity file /var/www/.ssh/id_rsa_ws-cert type -1
[8] => debug1: Local version string SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3
[9] => debug1: Remote protocol version 2.0, remote software version OpenSSH_7.6p1 Ubuntu-4ubuntu0.3
[10] => debug1: match: OpenSSH_7.6p1 Ubuntu-4ubuntu0.3 pat OpenSSH* compat 0x04000000
[11] => debug1: Authenticating to xxx.xxx.xxx.xxx:6633 as 'root'
[12] => debug1: SSH2_MSG_KEXINIT sent
[13] => debug1: SSH2_MSG_KEXINIT received
[14] => debug1: kex: algorithm: curve25519-sha256
[15] => debug1: kex: host key algorithm: ecdsa-sha2-nistp256
[16] => debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: compression: none
[17] => debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: compression: none
[18] => debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
[19] => debug1: Server host key: ecdsa-sha2-nistp256 SHA256:VYnLDKxjyAr9Peqx/Ef03k+99009S6y3OZvRL5euGE8
[20] => debug1: checking without port identifier
[21] => debug1: read_passphrase: can't open /dev/tty: No such device or address
[22] => Host key verification failed.
[23] => rsync: connection unexpectedly closed (0 bytes received so far) [sender]
[24] => rsync error: unexplained error (code 255) at io.c(235) [sender=3.1.2]
)
255
這是linux中的文件:
cd /home/
total 12K
-rwxrwxrwx 1 www-data root 111 Jul 7 12:20 update.sh
-rw------- 1 www-data root 1.7K Jul 6 02:26 id_rsa_ws
-rw------- 1 www-data root 393 Jul 6 02:26 id_rsa_ws.pub
謝謝大家
非常感謝[ https://stackoverflow.com/users/1491895/barmar]
在Barmar建議之后,我更改了以下內容:
答:我將ssh密鑰移至/var/www/.ssh
B.我更改了.sh文件中的命令,我添加了兩個參數
-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null
/usr/bin/rsync -zaP '-e ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i /var/www/.ssh/id_rsa_ws -v -p 6633' --del /var/www root@xxx.xxx.xxx.xxx:/var/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.