1. 程式人生 > >使用php呼叫shell指令碼同步檔案

使用php呼叫shell指令碼同步檔案

當你在上傳檔案的時候需要同步到另外機器的時候,可以執行shell指令碼實現檔案同步

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

執行指令碼需要安裝expect,直接yum安裝即可
expect指令碼是一種建立在tcl基礎上的指令碼語言,曝光率不高,卻堪稱shell指令碼的好基友。expect指令碼為互動而生,被設計為專門針對互動式程式的工具,常與對telnet、ftp、fsck、rlogin、tip、scp等配合使用
如果是從win上編輯過的指令碼在linux下出現no such file or directory,可在linux下vi指令碼執行

:sef ff=unix

在php執行shell指令碼時,記得要寫絕對路徑

相關推薦

使用php呼叫shell指令碼同步檔案

當你在上傳檔案的時候需要同步到另外機器的時候,可以執行shell指令碼實現檔案同步 #! /bin/bash a=$1 b=$2 ip=$3 port=$4 passwd=$5 /bin/rpm

php呼叫shell指令碼(web端和客戶端同時實現)

想這個問題有一段時間了,一開始想實現的功能是在web端點選一個按鈕,然後liunx主機採集影象,在瀏覽器上顯示。於是自然而然的想到了php呼叫shell指令碼。查了很多資料。實現了。 下面開始講解。本

如何在客戶端上傳shell指令碼檔案,並利用PHP呼叫執行指令碼

題目中的上傳包含兩部分,一部分是上傳檔案,一部分是利用PHP執行指令碼 上傳檔案到指定資料夾 所謂檔案上傳是指將本地文字檔案,圖片視訊或者音訊等檔案上傳到伺服器上,以供後續操作的過程。 上傳檔案有幾種方式,包括: - 單純的form表單上傳提交 使

利用Oracle DBMS_SCHEDULER呼叫shell指令碼檔案

今天在itpub上看到個帖子,大意是使用shell指令碼取檔案列表,和資料庫中一個表中記錄的檔名相比較,沒有的插入到表裡去。實驗程式碼如下:#建立檔案filelist.sh如下: #!/bin/bash

php生成shell指令碼並且呼叫

呼叫shell指令碼 廢話少說,用php呼叫已經有的shell指令碼是非常簡單的,使用system() 函式就可以具體語法就是**system(“/opt/lampp/file.sh”,a)∗∗,說明下這個a,就是當shell指令碼執行完的結果返回到 $a當中

shell指令碼 顯示檔案大小 顯示執行時間

顯示大小 echo $file size=`stat -c "%s" $file` 顯示執行時間 starttime=`date +'%Y-%m-%d %H:%M:%S'` endtime=`date +'%Y-%m-%d %H:%M:%S'` start_seconds

shell 指令碼替換檔案中的某個字串

1、將當前目錄下包含"qwe"串的檔案中的"qwe"字串替換為"abc" sed -i “s/qwe/abc/g” grep "qwe" -rl ./ 2、將某個檔案中的"qwe"字串替換為"abc" sed -i “s/qwe/abc/g” test.txt 如果將某個檔案

shell指令碼實現檔案改名/重新命名

  shell指令碼實現檔案改名小操作, 在此做一記錄. #!/bin/bash #將資料檔案.SAC名改為'<sta>.[N/E/Z].SAC' #例如2014.143.20.49.21.0000.YN.BAS.00.BHE.M.SAC改為BAS.E.SAC cd ..

Swift 呼叫 Shell 指令碼

最近在進行一個工作專案,需要在swift中呼叫shell指令碼: Swift呼叫shell介面 1. GetQCRLog.swift // GetQCRLog // Created by Cyril on 7/19/18. // Copyright © 20

Java遠端呼叫shell指令碼(專案實戰)

前言        Java遠端呼叫shell指令碼,需要用到SSH建立連結(類似於xshell連線linux),然後再根據合法的引數進行shell指令碼呼叫 1 首先,從業務層開始,我這裡實現重傳指令碼的業務,程式碼如下.       //重傳     public

解決呼叫shell指令碼中相對路徑的問題

依家我有1個軟體goagent目錄(大家懂得) 放在/home/gateman/Programs/ 下 1. proxy.py 入面有1個 proxy.py 檔案 放在/home/gateman/Programs/goagent/local/ 入面 2.breakwall.sh 我在 proxy.py 的上一

Linux系統中執行.sh(Shell指令碼檔案

      其中,以絕對路徑執行方法:       (1)./home/test/shell/hello.sh,可以這樣執行是因為當前登入使用者是root,當前路徑是在/下,. 代表當前路徑。       (2)/home/test/shell/hello

shell指令碼實現檔案移動、複製等操作

如題。 在此做一記錄,方便查閱。 #!/bin/bash #將一個目錄下的一些檔案移動到另一個目錄下 raw_dir="/home/liuyi/evt_test" #可修改絕對路徑; mkdir /home/liuyi/evt_bp #建立新的檔案目錄; for

expect指令碼同步檔案,expect指令碼指定host和要同步檔案,構建檔案分發系統,批量遠端執行命令

expect指令碼同步檔案 在一臺機器上把檔案同步到多臺機器上 自動同步檔案 #!/usr/bin/expect set passwd "123456" spawn rsync -av [email protected]:/tmp/12.txt /tmp/ ex

python呼叫Shell指令碼:os.system(cmd)或os.popen(cmd)的區別

 兩者的區別是: os.system(cmd)的返回值只會有0(成功),1,2  os.popen(cmd)會吧執行的cmd的輸出作為值返回。 python呼叫Shell指令碼,有兩種方法:os.system(cmd)或os.popen(cmd),前者返回值是指令碼的退出

c/c++程式內部呼叫shell指令碼

system() 函式原型: #include <stdlib.h> int system(const char *str) 指令碼示例test.sh #!/bin/sh echo $HOME 指令碼呼叫程式示例demo.cc #include

crontab執行任務呼叫shell指令碼,相對路徑無法找到

問題出現的場景大概就是 1 cron呼叫一個python指令碼 2 python指令碼中呼叫一個shell指令碼(對日誌分析)獲取shell輸出然後傳送郵件 類似一個監控任務。 直接執行python指令碼沒有問題,但是寫在cron中之後,shell指令碼中的相對路徑就找不到

Sqlplus裡如何呼叫Shell指令碼?待整理

自己封裝的一個shell指令碼,關鍵是如何呼叫呢?求助! #!/bin/sh function createOracleInstance(){ tableSpace=$1 tempTableSpace=${tableSpace}"_tem

十七週四次課 2018.03.05 expect指令碼同步檔案、expect指令碼指定host和要同步檔案、構建檔案分發系統、批量遠端執行命令

20.31 expect指令碼同步檔案 在一臺機器上把檔案同步到另外一臺機器上去。 建立檔案,然後把上面的程式碼貼上進去, 把尾號132的遠端機器的12.txt同步到本機的/tmp/目錄下 第一次登入問提示是否登入,第二次就可以直接輸密碼登入了。 表示expect結束了,

PHP 執行shell 指令碼,常見問題

php呼叫shell指令碼 1)exec() 原型: string exec ( string $command [, array &$output [, int &$return_var ] ) 說明: exec執行系統外部命令時不會輸出結果,而是返回結果