溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

linux系統(tǒng)中計劃任務(wù)怎么實現(xiàn)

發(fā)布時間:2021-12-23 10:51:33 來源:億速云 閱讀:222 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要講解了“l(fā)inux系統(tǒng)中計劃任務(wù)怎么實現(xiàn)”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“l(fā)inux系統(tǒng)中計劃任務(wù)怎么實現(xiàn)”吧!

一、定制計劃任務(wù)

1、atd服務(wù)(一次性)

1、atd服務(wù)對應(yīng)的命令------》at

使用at命令時先要進(jìn)行安裝

[root@localhost lianxi]# yum install at -y

然后必須要起動atd服務(wù),不然不會定時去執(zhí)行任務(wù)的

[root@localhost lianxi]# service atd start
Redirecting to /bin/systemctl start atd.service

案例如下:

[root@localhost lianxi]# at 11:00 #創(chuàng)建一個一次性執(zhí)行的計劃任務(wù)
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  #刪除計劃任務(wù)編號為3的任務(wù)
[root@localhost lianxi]# at -l  #查看計劃任務(wù)列表
5	Wed Dec 22 11:00:00 2021 a root
[root@localhost lianxi]#

2、存放一次性計劃任務(wù)的目錄:/var/spool/at

batch命令也等同于at命令,只不過是系統(tǒng)負(fù)載比較低的時候運行計劃任務(wù)

uptime命令:

[root@localhost lianxi]# uptime  #查看系統(tǒng)開機(jī)多久了,以及系統(tǒng)的平均負(fù)載 
 10:28:33 up 4 days, 16:13,  2 users,  load average: 0.00, 0.01, 0.05

2、crond服務(wù)(周期性)服務(wù)是默認(rèn)安裝的,而且開機(jī)自動啟動

1、crond服務(wù)對應(yīng)的命令------》crontab     是創(chuàng)管理周期性計劃任務(wù)的命令
-e  表示創(chuàng)建一個計劃任務(wù)  (edit)
-l  查看計劃任務(wù)列表

2、存放周期性計劃任務(wù)的目錄:/var/spool/cron

      cron服務(wù)的配置文件:/etc/crontab

      cron服務(wù)的日志文件:/var/log/cron (可以知道一個計劃任務(wù)是否執(zhí)行(CMD))

格式如圖所示:

linux系統(tǒng)中計劃任務(wù)怎么實現(xiàn)

linux系統(tǒng)中計劃任務(wù)怎么實現(xiàn)

 例子:《示例1 (root用 戶)》
每天早上7:50自動開啟sshd服務(wù),22點50時關(guān)閉
每隔5天的12點整清空一次FTP服務(wù)器公共目錄Ivar/ftp/pub
每周六的7:30時,重新啟動httpd服務(wù)
每周一、三、五的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服務(wù)、crond服務(wù) 后面d的含義

d------》daemon(守護(hù)進(jìn)程):一直在內(nèi)存里運行的進(jìn)程,直到我們?nèi)藶橥V顾倪\行,不然它是一直在內(nèi)存中運行的,因為一直在內(nèi)存里運行,所以我們的用戶可以隨時去訪問,所以它一直守護(hù)著你,等待著你的到來。

二、同步時間

在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 #重啟服務(wù)
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

三、練習(xí)

  1.編寫一個腳本/backup/backup_log.sh實現(xiàn)備份/var/log目錄下的所有文件到/backup目錄下,要求文件名是包含當(dāng)天日期,精確到秒,文件名例如:2016-6-6-2_30_20-log.tar.gz。
同時要求刪除/backup目錄下七天前的備份文件,只保留最近7天的

  2.以root用戶的身份去執(zhí)行,計劃任務(wù)的要求是每天的4:30執(zhí)行上面的這個腳本/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、如何找出有非法的計劃任務(wù)? 到哪些地方去看? crond進(jìn)程會到哪些地方去找需要執(zhí)行的腳本?

1./var/spool/cron   --》用戶自定義的計劃任務(wù)存放的地方

2.操作系統(tǒng)本身的計劃任務(wù)--(順風(fēng)車)

[root@localhost lianxi2]# ls /etc/cron.*
/etc/cron.deny
 
/etc/cron.d:
0hourly
 
/etc/cron.daily:  每臺需要執(zhí)行的腳本
logrotate  man-db.cron
 
/etc/cron.hourly:  每小時需要執(zhí)行的腳本
0anacron
 
/etc/cron.monthly:  每個月需要執(zhí)行的腳本
 
/etc/cron.weekly: 每周執(zhí)行的腳本
 
 
 
[root@localhost lianxi2]# cat /etc/cron.deny 禁用crond服務(wù)的用戶可以寫到里面

2、搭順風(fēng)車案例

搭順風(fēng)車?yán)樱?
[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

感謝各位的閱讀,以上就是“l(fā)inux系統(tǒng)中計劃任務(wù)怎么實現(xiàn)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對linux系統(tǒng)中計劃任務(wù)怎么實現(xiàn)這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI