linuxshellphp腳本
shell腳本編程,你可以想像成自動化處理,只要你將套路都設定好,他就會自動工作。
比如,你設定了
1、早上8點保存並分析昨天保存的系統有沒有出錯;
2、接著監測系統每隔一個時間段的CPU運行率,若連續幾次都是98%~100%,就發信息到你手機上讓你查看。
就這么簡單···
『貳』 如何讓php執行shell
php給我們提供了system(),exec(),passthru()這三個函數來調用外部的命令.
雖然這三個命令都能執行linux系統的shell命令,但是其實他們是有區別的:
system() 輸出並返回最後一行shell結果。
exec() 不輸出結果,返回最後一行shell結果,所有結果可以保存到一個返回的數組裡面。
passthru() 只調用命令,把命令的運行結果原樣地直接輸出到標准輸出設備上。
相同點:都可以獲得命令執行的狀態碼
例子:system("/usr/local/bin/webalizer/webalizer");
『叄』 php和linux shell的關系
linux shell是跟系統打交道的最基本的界面。
shell 裡面可以執行 php。php 程序也可以執行外部命令。
一般來說,系統可以沒有 php,然不能沒有 shell。
shell 可以單獨做腳本程序。
php 也可以用來做腳本程序。
php 主要用來做 web 服務。
shell 主要用來跟 os 打交道。
『肆』 linux 下寫 shell kill掉運行時間超過5分鍾的PHP進程
可以的,能根據Cpu累積耗時殺掉程序。
相關進程名字要知道哈。
假設以php進程為名字。
p_name=php
while true
do
sleep 3
#每3秒檢查一次。
pro="$(ps -A|grep "$p_name"|head -n1)"
time="$(echo $pro|awk '{
split($3,tab,/:/); if (tab[2]+tab[1]*60>=5) {print 1}else{print 0}
}')"
#上面那句利用awk判斷時間是不是大於5分鍾。是則輸出1,否則輸出0.
pid="$(echo $pro|awk '{print $1}')"
#如果為1 就殺掉那個進程。
if [ $time = '1' ]
kill -9 $pid
fi
done
『伍』 php如何執行shell腳本
我這邊很少用PHP操作linux系統,因為默認是沒有許可權的,可是我不想去修改許可權。
我變了個法子,用PHP操作指定文件,然後用定時任務運行shell腳本,獲取指定文件裡面的任務ID,執行對應的操作,然後能滿足我的需求了。
『陸』 如何通過php頁面執行shell腳本
exec裡面,a.bash前面有sh這個bin文件么,就把bin文件路勁加在a.sh前。try下
『柒』 如何使用Linux的Crontab執行PHP腳本
Linux中crontab是實現定時執行的指令,利用這個指令我們就可以定時執行某一個php文件,從而實現用PHP做Linux自動執行腳本。
如何用PHP作Linux自動執行腳本?
在安裝PHP的時候,會產生一個可執行文件,文件名為php.將它 到 /usr/local/bin 下.在終端方式執行php程序:
php -q onlinnum.php
PHP 原本是應用在網頁應用的﹐因此它會送出 HTML 的HEADER﹐但是在此我們是要將 PHP 用作 Shell Script﹐"-q" 就是表示不要送 出 HEADER 的意思.你可以試試看不加上 -q 的顯示結果。此時你已經可以在終端方式下執行PHP 代碼了。 linux命令:cron daemon
這是一個系統中常駐的服務,功能在於執行例行性的工作,如每天一次或每月一 次檢查磁碟。cron daemon 會在每分鍾檢查一次排定的工作表(crontab),看看是否有要執行的指令,所有的輸出會以mail寄給用戶。
設置 crontab
命令:crontab -e
該命令呼叫vi編輯器來編輯執行的清單。例如
0 0 1,15 * * fsck /home
1 * * * * /home/myhome/printhello
每一行代表一項排定的工作,在指令前為排定的時間,總共有5個欄位,以空格間隔,由左到右依序如下:
--------------------------
分鍾 從00到 99
點鍾 從0到 24
日 從01到31
月 從01到12
星期 從01到07,代表星期一到星期日
*號表示"每" ,如每天執行,就在第三欄填*號
--------------------------
所以上例的兩項工作是:
每月1號和15號檢查/home 磁碟
每小時的第一分執行 /home/myhome/printhello 這個文件
查看crontab:crontab -l
刪除crontab:crontab -r
我們就知道該怎麼利用PHP和crontab命令作Linux自動執行腳本了。
還需要注意什麼問題?
如果php中有使用資料庫,如oracle等,執行腳本中還需export Oracle的環境設置。因為cron下的腳本執行的用戶都是在沒登陸狀態下執行的,少了很多系統里設置的環境變數的值,在連接資料庫的時候會出問題。