Linux 上 curl + crontab 的用處

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、定時執行清理緩存腳本

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章