Linux使用Cron+AT實現在某個確定的時間段內隨機執行命令

發布時間:2017-03-22 12:16 來源:互聯網 當前欄目:web技術類

寫了個腳本簽到,但是不想總是在確定的時間簽到,不然在數據庫里面的記錄太假了,所以需要在確定的時間段內,隨機選個時間執行,最后想到了使用Cron+AT實現

思路很簡單,就是cron設置一個起始時間,比如每天早上6點,在這個時間往后隨機的2~350分鐘里面去簽到

那么只要這樣

0 6 * * * echo 'sleep ' $(shuf -i 1-60 -n 1)';date >>/tmp/xxxx.txt' |at now + $(shuf -i 2-350 -n 1) min

之所以前面還加了隨機1-60秒的sleep 是因為 at是整點執行,不想讓數據庫內只有整分鐘點的簽到記錄。

這個比直接在cron里面sleep的方法,節約不少資源,sleep最長駐留時間不超過60秒

為了保持cron里面的簡潔,可以再包裝一個腳本

  • 1、
  • 2、
  • 3、
  • 4、
  • 5、
  • 6、
  • 7、
  • 8、
  • 9、
  • 10、
  • 11、
  • 12、
  • 13、
  • 14、
  • 15、
  • 16、
  • 17、
  • 18、
  • 19、
  • 20、
  • 21、
  • 22、
  • 23、
  • 24、
  • 25、
  • 1、
  • 2、
  • 3、
  • 4、
  • 5、
  • 6、
  • 7、
  • 8、
  • 9、
  • 10、
  • 11、
  • 12、
  • 13、
  • 14、
  • 15、
  • 16、
  • 17、
  • 18、
  • 19、
  • 20、
  • 21、
  • 22、
  • 23、
  • 24、
  • 25、