1. 程式人生 > 其它 >Linux-系統的延時和定時

Linux-系統的延時和定時

1、系統的延時任務
at 時間
時間後回車
就可以進入編輯了
完成後按ctrl+d提交


at
09:46 #設定任務的執行時間 at> touch /mnt/file{1..9} #任務的動作 at> <EOT> #ctrl+d 發起任務 at -l #檢視任務列表 注:多個任務可以同時被執行 at -c 任務號 #檢視任務的內容 at -r 任務號 #取消任務的執行 取消一定在任務執行的時間之前 注:當任務有輸出的時候,輸出會以郵件的形式傳送給at任務的發起者 at now
+1min at> echo hello at> <EOT> job 5 at Sun Jan 20 10:08:00 2019 #郵件 例: mail -u root #檢視超級使用者郵件 Heirloom Mail version 12.5 7/5/10. Type ? for help. "/var/mail/root": 2 messages 2 new >N 1 root Sun Jan 20 09:46 22/1028 "Output from y" N 2 root Sun Jan 20
10:08 14/494 "Output from y" & 2 Message 2: #檢視第二封郵件 From [email protected] Sun Jan 20 10:08:00 2019 Return-Path: <[email protected]> X-Original-To: root Delivered-To: [email protected] Subject: Output from your job 5 To: [email protected] Date: Sun,
20 Jan 2019 10:08:00 +0800 (CST) From: [email protected] (root) Status: R hello & q:退出 >/var/spool/mail/root #清空郵件 系統中的其他使用者,也可以通過at命令發起任務的執行 例: [student@desktop0 ~]$ at + 10:13 syntax error. Last token seen: + Garbled time [student@desktop0 ~]$ at 10:13 at> touch /home/student/ss at> <EOT> job 6 at Sun Jan 20 10:13:00 2019 [student@desktop0 ~]$ at -l 6 Sun Jan 20 10:13:00 2019 a student [student@desktop0 ~]$ at 10:15 at> touch /root/file #在任務的發起中一定要注意:不同使用者的許可權問題 at> <EOT> job 7 at Sun Jan 20 10:15:00 2019 [student@desktop0 ~]$ at -l 7 Sun Jan 20 10:15:00 2019 a student [student@desktop0 ~]$ ll total 0 -rw-rw-r--. 1 student student 0 Jan 20 10:13 ss 2、at任務的黑白名單 黑名單: /etc/at.deny #系統中預設存在,在此檔案中出現的使用者不能執行at命令 [root@desktop0 mnt] ll /etc/at.deny -rw-r--r--. 1 root root 1 Jan 29 2014 /etc/at.deny [root@desktop0 mnt] vim /etc/at.deny [root@desktop0 mnt] cat /etc/at.deny student [root@desktop0 mnt] su - stduent su: user stduent does not exist [root@desktop0 mnt] su - student Last login: Sun Jan 20 10:11:57 CST 2019 on pts/0 [student@desktop0 ~]$ at 10:16 You do not have permission to use at. 白名單: /etc/at.allow #系統中預設不存在,當檔案出現,普通使用者不能執行at,只用在名單中出現的使用者可以,/etc/at.deny這個檔案失效 3、系統的定時任務

 

 



例:

分鐘   小時   天   月   周
 *     *     *    *   *        #每分鐘
*/2    *     *    *   *        #沒兩分鐘
*/2   09-17  *    *   *        #早9-晚5每兩分鐘
*/2   09-17  *   3,5  5        #3月和5月每週五
*/2   09-17  *    *   5        #每週五早9晚5
命令方式設定定時任務:
crontab -e              #root使用者的定時任務
crontab -l -u root      #列出crontab任務
crontab -e -u student   #root讓普通使用者執行定時任務
 
檔案方式設定定時任務:
cd /etc/cron.d
vim file(檔名任意)
* * * * * username    action
           #使用者名稱   #執行什麼命令
 
例:
分鐘   小時   天   月   周
 *     *     *    *   *   root touch  /mnt/file  #每分鐘root使用者在/mnt下建立一個file檔案
*/2    *     *    *   *        #沒兩分鐘
*/2   09-17  *    *   *        #早9-晚5每兩分鐘
*/2   09-17  *   3,5  5        #3月和5月每週五
*/2   09-17  *    *   5        #每週五早9晚5
 
非互動式:
echo "* * * * * root rm -rf /mnt/*" >/etc/cron.d/westos   
#把* * * * * root rm -rf /mnt/*命令列印到/etc/cron.d/westos檔案裡面
注:在檔案的方式定義crontab任務的時候,使用crontab -l是看不到內容的
 
以下目錄只對超級使用者可寫:
[root@desktop0 cron.d] ll -d /etc/cron.d
drwxr-xr-x. 2 root root 85 Jan 20 11:12 /etc/cron.d
 
crontab的黑名單:
/etc/cron.deny  #系統中預設存在,在此檔案中出現的使用者不能執行crontab
 
crontab的白名單:
/etc/cron.allow  #系統中預設不存在,當檔案創建出來的時候,普通使用者不能執行
#只有在名單中的使用者可以使用
4、系統臨時檔案的管理方式

cd /usr/lib/tmpfile.d/
vim westos.conf
 
 d      /mnt/westos       777     root      root      5s
目錄    要建立的檔案目錄     許可權     擁有者     所屬組
 
systems-tmpfiles --create /usr/lib/tmpfiles.d/*   #讀取裡面的所有檔案並按照規則去建立目錄
cd /mnt/westos
touch file{1..9}
等待五秒
systemd-tmpfiles --clean /usr/lib/temfiles.d/*    #清理目錄裡面的檔案(只有5秒鐘後才能清理)

檢視