ホームページ >バックエンド開発 >PHPチュートリアル >php を使用してシェル スクリプトを呼び出し、ファイルを同期します

php を使用してシェル スクリプトを呼び出し、ファイルを同期します

WBOY
WBOYオリジナル
2016-07-28 08:27:491312ブラウズ

当你在上传文件的时候需要同步到另外机器的时候,可以执行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 までご連絡ください。