Linux如何重復執行命令每隔幾秒或者每隔幾分鍾


作為Linux系統管理員通常需要在特定時間段內重復運行某些命令。就類似一個定時任務在定時執行某一個操作,下面就來看一下如何在一定周期之內執行相應的命令或者腳本,啥意思呢?舉個例子就比如每隔10秒執行一個命令,這該如何做呢?下面就來看一下如何實現吧。

1,使用crontab命令

crontab 命令用於維護 crontab 文件或 cron 表。cron 表包含要在系統上定期運行的命令列表。每個用戶都可以有一個 crontab,我們可以在其中創建和修改任務。但是,Cron只能用於一分鍾的最小間隔,即如果要間隔10秒運行一次命令,則需要創建60s/10s =6 個cron條目,如果是每隔20秒則創建3個cron條目,每隔30秒則創建2個cron條目。下面是cron表的解釋

定時任務執行解釋 命令
運行cron job 每分鍾 * * * * *  /root/backup.sh
運行cron job 每30分鍾 30 * * * *  /root/backup.sh
運行cron job 每小時 0 * * * * /root/backup.sh
運行cron job 每天深夜0點 0 0 * * *  /root/backup.sh
運行cron job 每天早上2點 0 2 * * *  /root/backup.sh
運行cron job 每個月1號 0 0 1 * *  /root/backup.sh
運行cron job 每個月15號 0 0 15 * *  /root/backup.sh
運行cron job 在12月1號深夜0點 0 0 0 12 *  /root/backup.sh
運行cron job 每周六深夜0點 0 0 * * 6  /root/backup.sh

[root@sharplee creatfile]# crontab -e
* * * * * date >> /home/sharplee/ss.txt
* * * * * (sleep 10; date >> /home/sharplee/ss.txt)
* * * * * (sleep 20; date >> /home/sharplee/ss.txt)
* * * * * (sleep 30; date >> /home/sharplee/ss.txt)
* * * * * (sleep 40; date >> /home/sharplee/ss.txt)
* * * * * (sleep 50; date >> /home/sharplee/ss.txt)

通過上圖可以看出,命令每隔10s鍾執行一次,命令主要是打印出當前的時間重定向到一個文件中。所以打印的文件的值是每隔10s寫入一次。

2,使用watch命令

Watch命令允許您定期執行命令或程序,還可以在屏幕上顯示輸出。這意味着您將能夠及時看到程序輸出。默認情況下,Watch每隔 2 秒重新運行一次命令/程序。可以很容易地更改間隔以滿足定期重復執行命令或者腳本的需求。

[root@sharplee creatfile]#watch -n 10 'date >> /home/sharplee/date.txt' 

通過上圖可以看出通過watch命令也可以實現間隔10秒執行相同的命令。watch命令還可以用於監視內存,以及監視磁盤拷貝等。

[root@sharplee creatfile]# watch free -n

 [root@sharplee creatfile]# watch -n 10 df -h

 [root@sharplee creatfile]# cp ubuntu-15.10-desktop-amd64.iso /home/tecmint/ && watch -n 0.1 du -s /home/tecmint/ubuntu-15.10-desktop-amd64.iso

3,使用sleep命令

sleep 命令還可以與 while 循環或 for 循環等循環一起使用,以重復或定期運行命令。打開終端並使用 for 循環,執行以下命令:

[root@sharplee creatfile]# for i in {1..8}; do echo -n "running the command $i time"; sleep 3; done

那使用for循環如何實現上面兩個例子,把日期輸入到一個文本中呢?

[root@sharplee creatfile]# for i in {1..1000}; do date >> testd.txt; sleep 10; done

下面來通過while循環實現每隔10s重復執行命令。

[root@sharplee creatfile]# while true; do date >> teste.txt; sleep 10; done

總結:本文主要講解了如何在Linux終端中定期或重復運行命令。從運行命令到每 隔幾秒或每小時運行一次腳本,通過小編親自實踐,所有操作都可以使用這三種方法完成。具體場景中請把后面執行的命令換成實際的命令或者腳本即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM