1. 程式人生 > >Linux基礎 之 at 命令 延遲&定時命令 和 臨時檔案的清理

Linux基礎 之 at 命令 延遲&定時命令 和 臨時檔案的清理

一、延遲命令    at

1.系統的延遲命令

at   時間

在/mnt 下新建檔案touch /mnt/file{1..6}
watch -n 1 'ls -l /mnt'用監控命令監控


在另外的shell中測試:

第一種編輯方式:
at 21:27
at> rm -fr /mnt/*
at>  <EOT>    ctrl+d 執行發起延遲


at -l 檢視延遲命令


at -c 1 延遲檢視內容 為執行 rm -fr /mnt/*


第二種編輯方式:
at now+2min
at> echo hello
at> <EOT>  ctrl+d 執行

at -r 4  撤銷延遲命令

當切換到其他使用者時
su - tom  切換其他使用者也可執行at延時命令
at now+1min
at> echo hello
at> <EOT>

at -l  檢視

二、系統延遲命令的黑白名單

vim /etc/at.deny    at延遲黑名單

vim /etc/at.allow   at延遲命令白名單

編輯vim /etc/at.deny 延遲命令的黑名單 寫入的使用者無法執行延遲命令


例如寫入了student使用者該使用者無法執行at延遲命令


在系統中建立該檔案,當該檔案出現 所有使用者預設為黑名單無法執行at延遲命令touch /etc/at.allow
當編輯vim /etc/at.allow檔案寫入使用者使用者便可以執行at延遲命令(at延遲命令的白名單)

編輯vim /etc/at.allow
例如編輯vim /etc/at.allow寫入 student使用者 student使用者可以執行at延遲命令

刪除該檔案rm -fr /etc/at.allow

三、系統的定時命令

systemctl status crond.service 檢視狀態


crontab -e 編輯

分鐘       小時     天      月       周  
*                 *         *         *        *                                 每天每分鐘
*            08-17     *         *        *                                 每天的早上8點到下午5點
*/2        08-17      *         *        *                                 每天的早上8點到下午5點每兩分鐘    
*/2         08-17   1,15     *        *                                 每月的1號和15號的早上8點到下午5點每兩分鐘
*/2     08-17   1,15   10-12      *                             10月到12月的1號和15號的早上8點到下午5點每兩分鐘
*/2    08-17    1,15   10-12     3                             10月到12月的每週週三和1號和15號的早上8點到下午5點每兩分鐘  

crontab  -e
* * * * *  rm -fr /westos/*


cat /var/spool/cron/root

crontab -l 檢視

crontab -u root -r  撤銷定時
crontab -l檢視

crontab -u student -e
root使用者指定student使用者發起定時任務
crontab -u student -l
檢視定時任務
crontab -u student -r
撤銷定時任務

四、系統定時命令的黑白名單

vim /etc/cron.deny  系統定時任務黑名單

vim /etc/cron.allow  系統定時任務白名單

vim /etc/cron.deny 編輯定時任務黑名單寫入普通使用者student
測試student使用者不可以執行定時任務


 再次編輯vim /etc/cron.deny清空寫入的內容

定時命令黑名單:
 touch /etc/cron.allow新建檔案該檔案出現系統中預設所有使用者不可以執行定時任務(定時任務白名單)
測試:

vim /etc/cron.allow編輯該檔案寫入student
測試:student使用者可以執行定時任務,其他使用者不可以。


測試:


 ll /etc/cron.deny 檢視
 ll /etc/cron.allow 檢視

 rm -fr /etc/cron.allow   刪除該檔案

五、系統級的定時任務

進入cd /etc/cron.d目錄
 ls檢視

自己編輯一個 vim westos

裡面寫入


 ls檢視

cat westos 檢視westos下的內容
* * * * *     root    rm -fr /westos/*

systemctl stop crond.service當關閉服務系統級不執行,當下次開機時立即執行


systemctl start crond.service 開啟服務


六、清理系統中的臨時檔案

實驗時在另外的shell中執行監控命令
watch -n 1 'ls -lR /westos/'

cd /usr/lib/tmpfiles.d/ 切換環境
ls

編輯vim westos.conf
d /westos/test  777 root root 10s  在westos下建立test 且許可權為777 10秒清理一次

cat  westos.conf 檢視內容


systemd-tmpfiles --create /usr/lib/tmpfiles.d/*生成一個臨時目錄


touch /westos/test/file  在westos目錄下建立檔案


systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*清理目錄中的檔案,檔案超過10秒將會被清理


 touch /westos/test/file  繼續建立檔案檢視實驗效果使得在清理檔案時file超過10s而file1沒有超過
 touch /westos/test/file1

systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*清理超過10秒的檔案