1. 程式人生 > >linux中系統延時任務及定時任務

linux中系統延時任務及定時任務

size 名稱 查看 裏的 cront all png 文件 星期

1.系統延時任務
如遇到這種情況
Can‘t open /var/run/atd.pid to signal atd. No atd running?
技術分享圖片
則執行
技術分享圖片重啟服務

1 at

at 固定的時間
at now+1min(一分鐘之後執行)
touch file1 建立文件1
ctrl d 開啟任務
技術分享圖片
at -l 查看延時任務列表
技術分享圖片
at -c 任務號 (查看任務內容)
技術分享圖片
技術分享圖片
at -r 任務號 (刪除任務)
技術分享圖片
12任務已被刪除

當延時任務有輸出時候,並不是輸出在終端上,而是以郵件的形式發送給任務的發起者

技術分享圖片
郵件的存放位置
/var/spool/mail/用戶名 :每一個用戶的郵件會被記錄在以其用戶名為名稱的文件中。
技術分享圖片
清空郵件

2.at任務用戶的黑白名單

/etc/at.deny (用戶的黑名單) 系統中默認存在
/etc/at.allow (用戶的白名單) 系統中默認不存在可以建立,建立後所有普通用戶都不能執行at 除非在其名單中
白名單成立後黑名單自動失效
技術分享圖片
技術分享圖片 老張在黑名單中所以不能執行at任務
技術分享圖片 harry沒在黑名單中則可執行at任務
技術分享圖片 白名單成立後所有用戶不能執行at任務

3系統定時任務設定
1.crontab 時間的表示方式
技術分享圖片
依次表示為 minute: 表示分鐘,可以是從0到59之間的任何整數。hour:表示小時,可以是從0到23之間的任何整數。 day:表示日期,可以是從1到31之間的任何整數。month:表示月份,可以是從1到12之間的任何整數。week:表示星期幾,可以是從0到7之間的任何整數,這裏的0或7代表星期日。

技術分享圖片
表示每分鐘
技術分享圖片
表示每2分鐘
技術分享圖片
早上9點到下午三點每兩分鐘
技術分享圖片
5月3日每周二的早上9點到下午15點每兩分鐘

2.crontab

crontab -e -u 指定用戶創建定時任務

技術分享圖片

技術分享圖片 建立了文件file{1.3}
crontab -l -u 查看指定用戶的定時任務

技術分享圖片

crontab -r -u # 取消指定用戶的定時任務

技術分享圖片
3系統控制crontab的服務
crontab由crond.service 服務控制。當該服務開啟時,所設定的定時任務才能生效。
service crond status 來運行服務

4.文件的方式設定定時任務
創建/etc/cron.d/xxx 文件 ,在該文件中編寫需要執行的定時任務
任務編寫格式:* * * * * 用戶(執行該任務的) 任務操作

技術分享圖片
技術分享圖片

5.crontab 的黑白名單
crontab 的黑名單
/etc/cron.deny 系統中默認存在,出現在黑名單中的用戶將無法使用crontab設定定時任務。

crontab 的白名單
/etc/cron.allow 系統中默認不存在,如果自己創建,黑名單失效,只有出現在白名單中的用戶才能使用crontab設定定時任務,超級用戶不受限制。

系統中臨時文件的管理

systemd-tmpfiles 系統用來創建、管理、刪除臨時文件的命令。
臨時文件都存在有效期,當其有效期過了之後就可誒被清理,但是有效期沒過就不能被清理。所以設置定時任務對系統的臨時文件進行清理,在每次清理時過期的文件會被清理掉,只要設置合適的清理周期,就能保證系統中臨時文件不會占用大量資源。

/usr/lib/tmpfiles.d/ 中的.conf文件描述了 systemd-tmpfiles 如何創建、清理、刪除臨時文件和目錄,記錄了對臨時文件的規範。
創建xxx.conf 文件,並寫入規範
技術分享圖片

systemd-tmpfiles --create /usr/lib/tmpfiles.d/*
編寫一個臨時目錄的規範文件,並掃描該規範文件創造出該目錄 文件讀取

systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*
使用該指令對臨時文件的規範文件進行掃描,過期的臨時文件會被清理

linux中系統延時任務及定時任務