您好,登錄后才能下訂單哦!
這篇文章主要講解了“linux系統中計劃任務怎么實現”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“linux系統中計劃任務怎么實現”吧!
1、atd服務(一次性)
1、atd服務對應的命令------》at
使用at命令時先要進行安裝
[root@localhost lianxi]# yum install at -y
然后必須要起動atd服務,不然不會定時去執行任務的
[root@localhost lianxi]# service atd start Redirecting to /bin/systemctl start atd.service
案例如下:
[root@localhost lianxi]# at 11:00 #創建一個一次性執行的計劃任務 at> bash /root/wang.sh at> <EOT> # ctrl+d退出 job 5 at Wed Dec 22 11:00:00 2021 [root@localhost lianxi]# at -l 3 Wed Dec 22 10:20:00 2021 a root 5 Wed Dec 22 11:00:00 2021 a root [root@localhost lianxi]# [root@localhost lianxi]# atrm 3 #刪除計劃任務編號為3的任務 [root@localhost lianxi]# at -l #查看計劃任務列表 5 Wed Dec 22 11:00:00 2021 a root [root@localhost lianxi]#
2、存放一次性計劃任務的目錄:/var/spool/at
batch命令也等同于at命令,只不過是系統負載比較低的時候運行計劃任務
uptime命令:
[root@localhost lianxi]# uptime #查看系統開機多久了,以及系統的平均負載 10:28:33 up 4 days, 16:13, 2 users, load average: 0.00, 0.01, 0.05
2、crond服務(周期性)服務是默認安裝的,而且開機自動啟動
1、crond服務對應的命令------》crontab 是創管理周期性計劃任務的命令
-e 表示創建一個計劃任務 (edit)
-l 查看計劃任務列表
2、存放周期性計劃任務的目錄:/var/spool/cron
cron服務的配置文件:/etc/crontab
cron服務的日志文件:/var/log/cron (可以知道一個計劃任務是否執行(CMD))
格式如圖所示:
例子:《示例1 (root用 戶)》
每天早上7:50自動開啟sshd服務,22點50時關閉
每隔5天的12點整清空一次FTP服務器公共目錄Ivar/ftp/pub
每周六的7:30時,重新啟動httpd服務
每周一、三、五的17:30時,打包備份/etc/httpd目錄
[root@localhost lianxi]# crontab -e crontab: installing new crontab [root@localhost lianxi]# crontab -l 30 3 * * * bash /root/sc.sh 50 7 * * * service sshd start 50 22 * * * service sshd stop 0 12 */5 * * rm -rf /var/ftp/pub/* 30 7 * * 6 service httpd restart 30 17 * * 1,3,5 tar czf /backup/httpd.tar.gz /etc/httpd 30 4 * * * /bin/bash /lianxi/backup/backup_log.sh [root@localhost lianxi]#
3、atd服務、crond服務 后面d的含義
d------》daemon(守護進程):一直在內存里運行的進程,直到我們人為停止它的運行,不然它是一直在內存中運行的,因為一直在內存里運行,所以我們的用戶可以隨時去訪問,所以它一直守護著你,等待著你的到來。
在centos7里:使用ntpdate命令
#第一步先安裝 [root@localhost lianxi]# yum install ntpdate -y #第二步 [root@localhost lianxi]# date -s "2021-12-22 15:6:12" #修改時間 2021年 12月 22日 星期三 15:06:12 CST #第三步 [root@localhost lianxi]# ntpdate time.windows.com 22 Dec 11:59:38 ntpdate[13102]: step time server 20.189.79.72 offset -11225.674351 sec [root@localhost lianxi]# date 2021年 12月 22日 星期三 11:59:42 CST
在centos8或7里:使用chrony
[root@localhost lianxi]# yum install chrony -y #安裝 [root@localhost lianxi]# service chronyd restart #重啟服務 Redirecting to /bin/systemctl restart chronyd.service [root@localhost lianxi]# date -s "2021-12-22 15:6:12" 2021年 12月 22日 星期三 15:06:12 CST [root@localhost lianxi]# date 2021年 12月 22日 星期三 12:02:38 CST
1.編寫一個腳本/backup/backup_log.sh實現備份/var/log目錄下的所有文件到/backup目錄下,要求文件名是包含當天日期,精確到秒,文件名例如:2016-6-6-2_30_20-log.tar.gz。
同時要求刪除/backup目錄下七天前的備份文件,只保留最近7天的
2.以root用戶的身份去執行,計劃任務的要求是每天的4:30執行上面的這個腳本/backup/backup_log.sh
[root@lamp-test backup]# pwd /backup [root@lamp-test backup]# cat backup_log.sh #!/bin/bash mkdir -p /backup tar -czf /backup/$(date +%F_%H_%M_%S)-log.tar.gz /var/log/* find /backup -mtime +7 -type f -name "*.tar.gz" -exec rm -rf {} \; [root@lamp-test backup]# crontab -l 30 4 * * * bash /backup/backup_log.sh
1、如何找出有非法的計劃任務? 到哪些地方去看? crond進程會到哪些地方去找需要執行的腳本?
1./var/spool/cron --》用戶自定義的計劃任務存放的地方
2.操作系統本身的計劃任務--(順風車)
[root@localhost lianxi2]# ls /etc/cron.* /etc/cron.deny /etc/cron.d: 0hourly /etc/cron.daily: 每臺需要執行的腳本 logrotate man-db.cron /etc/cron.hourly: 每小時需要執行的腳本 0anacron /etc/cron.monthly: 每個月需要執行的腳本 /etc/cron.weekly: 每周執行的腳本 [root@localhost lianxi2]# cat /etc/cron.deny 禁用crond服務的用戶可以寫到里面
2、搭順風車案例
搭順風車例子: [root@lamp-test cron.hourly]# pwd /etc/cron.hourly [root@lamp-test cron.hourly]# ls 0anacron poweroff.sh [root@lamp-test cron.hourly]# chmod +x poweroff.sh [root@lamp-test cron.hourly]# cat poweroff.sh init 0 [root@lamp-test log]# cd /etc/cron.hourly/ [root@lamp-test cron.hourly]# ls 0anacron poweroff.sh [root@lamp-test cron.hourly]# rm -rf poweroff.sh
感謝各位的閱讀,以上就是“linux系統中計劃任務怎么實現”的內容了,經過本文的學習后,相信大家對linux系統中計劃任務怎么實現這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。