>백엔드 개발 >PHP 튜토리얼 >PHP를 사용하여 쉘 스크립트를 호출하여 파일 동기화

PHP를 사용하여 쉘 스크립트를 호출하여 파일 동기화

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으로 문의하세요.