1、curl的基本用處
curl最基本的用處是查看網頁源代碼,如下:
- 查看源代碼的同時實現了一次瀏覽頁面
2、crontab的基本用處
crontab可以實現Linux上的定時任務,基本語法如下:
* * * * * command
分鐘 小時 日 月 星期 執行的命令
0~59 0~23 1~31 1~12 0~6
比如:每分鐘輸出一下當前時間的定時任務
1、crontab -e --編輯當前用戶的定時任務
每分鐘也可寫作:*/1 * * * * command
2、crontab -l --列出當前用戶的定時任務
3、--查看定時任務執行情況
當前用戶定時任務輸出在目錄/var/spool/mail/下對應的當前用戶名文件中,比如當前用戶名是dirk,查看當前用戶定時任務如下:
3、curl + crontab
寫到這裏估計你就知道用這兩個命令可是做什麼事情了吧,用來增+web的visits
1、編寫訪問指定URL的腳本
sleep 1:當前進程暫停1秒鐘,仿正常訪問行徑
>/dev/null 2>&1:將標準輸出和錯誤輸出都重定向/dev/null,也就是系統“黑洞”
2、編寫定時任務
2分鐘執行一次,是爲了防止被禁
sh /root/cron_sh/csdn_to_top.sh:執行上一步編寫的腳本
3、查看定時任務執行情況
建議使用:cat /var/spool/mail/username |more 以頁爲單位查看
當文件過大,可以查看最後輸出的100行信息:tail -100 /var/spool/mail/username |more
注意:使用了>/dev/null 2>&1後,執行信息不在輸出到默認目錄,當然你也可以指定輸出目錄,不建議指定輸出目錄,當在服務器上不停的執行定時任務,執行的信息累計會變成信息垃圾,還需要定時清理。
4、處理執行腳本的緩存
因爲腳本執行的頻率非常高,很容易消耗系統的內存,所以要定時清理一下caches
編寫腳本如下,下面一一解釋
#!/bin/bash
#當可用內存小於500M釋放caches
left_mem=`free -m |awk 'NR==2 {print $4}'`
#echo $left_mem
if [ $left_mem -lt 500 ]; then
sync
echo 3 > /proc/sys/vm/drop_caches
fi
#將清理的數據進行記錄
current_time=`date +"%Y-%m-%d %H:%M:%S"`
echo "time: $current_time free: $left_mem Mb" >> /root/cron_sh/free_mem.log
free -m
以Mb爲單位顯示內存使用情況,如下:
主要信息在第2行,2006是總內存,404是已用內存,1601是剩餘內存,cached也就是從磁盤到內存的一個緩存
free -m |awk 'NR==2'
獲取內存信息第2行,如下
free -m |awk 'NR==2 {print $4}'
對第2行數據分割後,獲取第4個參數,也就是剩餘內存的值,賦值給變量left_mem
if [ $left_mem -lt 500 ]; then
...
fi
當剩餘內存小於500時,執行
sync
數據同步,以免清楚緩存導致數據丟失
echo 3 > /proc/sys/vm/drop_caches
清除cached緩存
current_time=`date +"%Y-%m-%d %H:%M:%S"`
以下列格式,格式化輸出當前時間,賦值給變量current_time
echo "time: $current_time free: $left_mem Mb" >> /root/cron_sh/free_mem.log
將此時的時間和清理的緩存數據保存到自定義日誌文件中,以便統計觀察。
5、定時執行清理緩存腳本