首頁 >後端開發 >php教程 >使用php呼叫shell腳本同步文件

使用php呼叫shell腳本同步文件

WBOY
WBOY原創
2016-07-28 08:27:491314瀏覽

当你在上传文件的时候需要同步到另外机器的时候,可以执行shell脚本实现文件同步

<code><span>#! /bin/bash</span>
a=<span>$1</span>
b=<span>$2</span>
ip=<span>$3</span>
port=<span>$4</span>
passwd=<span>$5</span>
/bin/rpm -qa|/bin/grep -q expect
<span>if</span> [ $? <span>-ne</span><span>0</span> ];<span>then</span><span>echo</span><span>"please install expect"</span><span>exit</span><span>fi</span><span>if</span> [ <span>$#</span><span>-ne</span><span>5</span> ];<span>then</span><span>echo</span><span>"must 5 parameter,1:source file,2:object file,3:object ip 4:object port,5:passwd"</span><span>exit</span><span>fi</span>
expect -c <span>"
  spawn scp -P <span>$port</span><span>$a</span> root@<span>$ip</span>:<span>$b</span>
  expect {
    \"*assword\" {set timeout 300; send \"<span>$passwd</span>\r\";}
    \"yes/no\" {send \"yes\r\"; exp_continue;}
  }
  expect eof"</span></code>

运行脚本需要安装expect,直接yum安装即可
expect脚本是一种建立在tcl基础上的脚本语言,曝光率不高,却堪称shell脚本的好基友。expect脚本为交互而生,被设计为专门针对交互式程序的工具,常与对telnet、ftp、fsck、rlogin、tip、scp等配合使用
如果是从win上编辑过的脚本在linux下出现no such file or directory,可在linux下vi脚本执行

<code><span>:sef ff</span>=<span>unix</span></code>

在php执行shell脚本时,记得要写绝对路径

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

以上就介绍了 使用php调用shell脚本同步文件,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn