新聞中心
序

最近正在忙于開發(fā)豆瓣數(shù)據(jù)同步,主要原因是豆瓣接口不給力,超過一定的訪問量就抓不到它的數(shù)據(jù)。所以決定把豆瓣的數(shù)據(jù)導(dǎo)入到本地服務(wù)器,然后使用我們自己的數(shù)據(jù)。
導(dǎo)入數(shù)據(jù)的腳本我已經(jīng)開發(fā)完了?,F(xiàn)在就剩下命令行調(diào)用了。今天我就專門研究了下shell的應(yīng)用,我把我的思考過程寫一下。
準(zhǔn)備
這是要使用的php測試腳本(并不是我的線上代碼,只是一個樣例)。
- if ($_SERVER['argc'] < 2) {
- echo "調(diào)用不正確!\n";
- echo "調(diào)用方式:";
- echo "php {$_SERVER['argv'][0]} { rsync_show | rsync_show_by_id 1231123 | rsync_douban }\n";
- exit(-1);
- }
- function rsync_show() {
- echo "調(diào)用節(jié)目數(shù)據(jù)\n";
- }
- function rsync_show_by_id($id) {
- if(emptyempty($id)){
- echo "缺少參數(shù)...\n";
- exit(-1);
- }
- echo "根據(jù)指定ID開始導(dǎo)入節(jié)目數(shù)據(jù)\n";
- }
- function rsync_douban() {
- echo "調(diào)用豆瓣數(shù)據(jù)層\n";
- }
- foreach ($_SERVER['argv'] as $k => $v) {
- if($k == 0) continue;
- if($v == 'rsync_show_by_id'){
- call_user_func($v, $_SERVER['argv'][2]);
- break;
- }else{
- call_user_func($v);
- }
- }
- exit(0);
查看幾個調(diào)用結(jié)果
[[101291]]錯誤1
[[101291]]錯誤2
[[101291]]正確的調(diào)用方式
[[101291]]通過crontab -e設(shè)置個定時執(zhí)行腳本
#p#
shell 腳本
1、開始使用shell腳本編程
[[101291]]運行腳本
2、添加一個停止腳本
3、函數(shù)整理
#p#
shell 查漏補缺
兩大問題:1、是不是再寫一個方法?2、怎么傳參?。?/p>
第一個問題,直接用start方法就行了,沒必要再寫一個方法!——多寫一個方法是要付出代價的。
第二個問題怎么解決,我忽然想到在我們安裝開源軟件的時候喜歡這么用,如下圖
所以我決定也使用類似的方法作為參數(shù)傳遞之用。
具體看我下面的方法調(diào)用??!
[[101291]]運行腳本
重點:
[[101291]]放入crontab中
我在php的源代碼中的configure中發(fā)現(xiàn)了一個不錯的輸出字符的方法,與大家分享
[[101291]]運行效果
總結(jié)
這就是我今天收獲的一些東西,shell我也不是很精通。如果大家有更好的建議,希望告知一、二。
分享題目:X皮書之shell實戰(zhàn)開發(fā)
轉(zhuǎn)載源于:http://www.dlmjj.cn/article/djocgeg.html


咨詢
建站咨詢
