Linux 第19天: (09月08日) 練習和做業vim
/var/spool/at at任務列表bash
service atd status 查詢服務狀態
/etc/rc.d/init.d/atd status 查詢服務狀態
/etc/init.d/atd status 軟鏈接查詢ide
chkconfig --list atd
runlevel
ntsysv 圖形界面設置服務啓動選項
chkconfig --level 5 atd on 設置服務啓動選項
runlevelurl
systemctl status atd 版本7服務查詢
systemctl start atd 版本7啓動服務spa
at -V 查詢版本
at -l 列出任務表
at -c 1 查看任務詳細定義
at -d 刪除任務
at -f 任務以文件方式日誌
at 10:00 -f /root/at.sh 任務以文件方式
at 10:00 < /root/at.sh 任務以文件方式crontab
ll /var/spool/at 列出任務文件it
at 10:00 -f at.sh -m 強制以郵件通知任務class
/etc/at.deny 黑名單
/etc/at.allow 白名單test
vim /etc/crontab 修改計劃任務
cat /var/log/crontab 查看任務日誌
cat /etc/cron.hourly/0anacron
cat /var/spool/anacron/cron.daily
cat /etc/anacrontab
cd /etc/cron.daily/
cd /etc/cron.weekly/
ll /var/spool/cron 列出任務列表
crontab -r
練習
一、每4小時備份一次/etc目錄至/backup目錄中,保存的文件名稱格式爲「etc-yyyy-mm-dd-HH.tar.xz」
mkdir /backup
crontab -e
*/10 * * * * /root/bin/disk.sh
vim disk.sh
1 */4 * * * /bin/cp -a /etc /backup/etc-$(date +'%Y%m%d%H%M') > /dev/null
1 */4 * * * tar Jcf /testdir/backup/etcbak-`date +\%F-\%H`.tar.xz /etc/ &> /dev/null
二、每週2, 4, 7備份/var/log/messages文件至/logs目錄中,文件名形如「messages-yyyymmdd」
crontab -e
1 1 * * 2,4,7 /bin/cp /var/log/messages /logs/message-$(date +'%Y%m%d%') > /dev/null
三、每兩小時取出當前系統/proc/meminfo文件中以S或M開頭的信息追加至/tmp/meminfo.txt文件中
crontab -e
1 */2 * * * /bin/grep "^S" /proc/meminfo >> /temp/meminfo.txt
四、工做日時間,每10分鐘執行一次磁盤空間檢查,一旦發現任何分區利用率高於80%,就執行wall警報
crontab -e
*/10 * * * 1-5 /bash vim disk.sh
vim disk.sh
#!/bin/bash
DISK=`df|grep'^/dev/sd.*'|tr -s ' ' '%'|cut -d% -f5|sort -n|tail -n1`
[ $DISK - gt 80 ] && wall "disk will be full"
思考:
(1) 如何在秒級別運行任務?
* * * * * for min in 0 1 2; do echo "hi"; sleep 20; done
(2) 如何實現每7分鐘運行一次任務?