linux的at定時任務的使用
使用at只能執行一次性任務;
使用at命令需要開啟atd進程。
以下情況需要安裝at命令:
情況1、查看是否開啟atd進程:ps -ef | grep atd。
[test@localhost init.d]$ ps -ef | grep atd
test 1599 1431 0 14:39 pts/0 00:00:00 grep --color=auto atd
結果只有一行,沒有顯示atd命令的位置信息,需要安裝at命令,
情況2、使用at命令時顯示:
bash: at: 未找到命令
安裝at命令:
yum -y install at。
設置自動啟動at命令:
chkconfig --level 35 atd on。
啟動atd進程:
service atd start。
如果在使用at命令后,報如下錯誤:
Can't open /var/run/atd.pid to signal atd. No atd running?
意思是atd進程沒有運行,需要執行啟動atd進程命令:
service atd start。
再次查看atd進程的結果:ps -ef | grep atd。
root 1652 1 0 14:59 ? 00:00:00 /usr/sbin/atd -f
test 1664 1431 0 14:59 pts/0 00:00:00 grep --color=auto atd
開啟命令:/etc/init.d/atd start或者restart(也可以使用service命令)。
查詢任務:atq。
命令參數:
-m 當指定的任務被完成之后,將給用戶發送郵件,即使沒有標准輸出
-v 顯示任務將被執行的時間
-c 打印任務的內容到標准輸出
-V顯示版本信息
-q<> 使用指定的隊列
-t<> 以時間參數的形式提交要運行的任務
示例:指定時間來執行ls命令
[test@localhost ~]$ at 14:55 2018-10-09
at> date > 123.txt //這里是輸入要執行的命令或文件,
//使用ctrl+backspace鍵才能刪除,
at> <EOT> //使用ctrl+D輸入結束。
job 5 at Tue Oct 9 14:55:00 2018
使用atq查詢:
[test@localhost /]$ atq
2 Tue Oct 9 14:53:00 2018 a test
5 Tue Oct 9 14:55:00 2018 a test
使用at -c 編號,查看內容:
[test@localhost /]$ at -c 2
使用atrm刪除:
[test@localhost /]$ atrm 2
示例:三天后的下午5點執行/bin/ls
at 5pm+3 days
at> /bin/ls
如果不希望某些賬號使用at命令,可以在/etc/at.deny文件中寫入禁止的
用戶名。