用 PHP 編寫 Shell Script

文章位置: 主頁 > 文章資料庫 > PHP 教學 > 用 PHP 編寫 Shell Script
瀏覽次數: 7739
更新時間: 2005/05/05 18:41

文章簡介

網絡管理員在日常的工作中難免會使用到 Shell Script,這可以使工作更加方便以及減少出錯的機會。一般上編寫 shell script 會使用 sh, bash, csh, tcsh, perl 等等來做。


使用 PHP 編寫 Shell Script

那麼概然有這麼多的選擇,為什麼是使用 PHP 來寫?我想最大的好處是連接不同資料庫儲存數據時會較容易,而且其實 PHP 也可用作 shell script,而且一點也不複雜。請先看以下一個簡單的 shell script:


backup.sh
01 #!/bin/sh
02 cd /
03 tar zcvf etc_config.tgz etc/
04 mv etc_config.tgz $HOME/backup


以上這個 shell script 是將 etc 目錄備份成壓縮檔 etc_config.tgz,然後將該壓縮檔搬到使用者 Home directory 下的 backup 目錄。
要執行以 shell script,先要使用 chmod u+x backup.sh 將它改為可執行,然後用以下指令執行它:

sh backup.sh

如果要改用 PHP 代替以上所用的 sh,只要修改第一行,將 /bin/sh 換成 /usr/local/php/bin/php -q 即可,例如:

php_time.php
01 #!/usr/local/php/bin/php -q
02 <?php
03
echo date("Y/m/d");
04
?>


注意,請根據你的伺服器配置設定以上的 php 路徑。最後儲存檔案後將它 chmod u+x,然後打入以下指令執行:

./php_time.php

這時便會在 Shell 下看到輸出現時的日期。

那麼如果是已經寫好的 PHP 程式,是否可以不加上 #!/usr/local/php/bin/php 這一行來執行?答案是可以的,只要改用以下指令:

/usr/local/php/bin/php -q /path/to/script.php

以上的 /usr/local/php/bin/php 同樣是 php 的安裝路徑,而 /path/to/script.php 是程式的儲存位置。


將 PHP Script 自動化

現在可以用 PHP 寫 shell script,那麼也就是說可以將 PHP 放入排程自動執行。只要輸入以下指令便可:

crontab -e

然後系統便會呼叫 vi 編輯器,使用以下格式加入排程工作

00 05 * * * /usr/local/php/bin/php -q /home/yourname/backup.php > /dev/null 2>&1

以上 /home/yourname/backup.php 是 php script 的絕對路徑,而以上例子是設定成每天早上的 5:00 便會自動執行。


====================================================
歡迎轉載,但轉載時請保留此宣告,不得作為商業用途
作者: Sam Tang <admin{at}phpini{dot}com>
來源網站: http://www.phpdc.com/


用戶評論 按這裡發表新評論 
yydesign alan at chinese-goods dat net
10 August 2005 10:47
呵呵,又学了一招
 
le poker 31CK4IiCtX at yahoo dat com
09 May 2008 11:06
http://usuarios.lycos.es/spacer1/el-poquer.html [url=http://usuarios.lycos.es/spacer1/el-poquer.html]el poquer[/url] <a href=http://usuarios.lycos.es/spacer1/el-poquer.html>el poquer</a> <a href=http://membres.lycos.fr/spacer1/world-poker-championships.html>world poker championships</a> [url=http://membres.lycos.fr/spacer1/world-poker-championships.html]world poker championships[/url] http://membres.lycos.fr/spacer1/world-poker-championships.html [url=http://mitglied.lycos.de/samael1/casino-slots-download.html]casino slots download[/url] <a href=http://mitglied.lycos.de/samael1/casino-slots-download.html>casino slots download</a> http://mitglied.lycos.de/samael1/casino-slots-download.html http://membres.lycos.fr/balrog1/partie-poker-en-ligne.html <a href=http://membres.lycos.fr/balrog1/partie-poker-en-ligne.html>partie poker en ligne</a> [url=http://membres.lycos.fr/balrog1/partie-poker-en-ligne.html]partie poker en ligne[/url] [url=http://membres.lycos.fr/balrog1/poker-en-ligne-sans-inscription.html]poker en ligne sans inscription[/url] <a href=http://membres.lycos.fr/balrog1/poker-en-ligne-sans-inscription.html>poker en ligne sans inscription</a> http://membres.lycos.fr/balrog1/poker-en-ligne-sans-inscription.html
 
 
 發表評論
姓名:
Email:
內容: