如何在重启后自动设置“AT”计划作业

时间:2011-03-07 02:13:30

标签: shell automation cron centos reboot

当我通过ssh以root身份登录centos时 我输入

at  -f /etc/at_stopssh.txt now + 5 minutes

并且它有效,一个计划工作已成功设置

at_stopssh.txt包含一个简单的命令,如下所示

service sshd stop

然后我尝试通过添加它来重新启动后自动化它 rc.local文件。所以我在rc.local

中添加了一个新行
at  -f /etc/at_stopssh.txt now + 5 minutes
重启后

。我通过atq命令检查,似乎没有添加任务计划。

我以另一种方式尝试。我在下面的rc.local文件中添加了另一个换行符

echo "/sbin/service/service /usr/sbin/sshd/sshd stop"|/usr/bin/at now + 5 minutes

并且它再次非功能性。

供您参考,这是我的env文件内容,如下所示

env | sort > /tmp/env.at



_=/bin/env
G_BROKEN_FILENAMES=1
HISTSIZE=1000
HOME=/root
HOSTNAME=377pc.cn
INPUTRC=/etc/inputrc
LANG=en_US.UTF-8
LESSOPEN=|/usr/bin/lesspipe.sh %s
LOGNAME=root
LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35:
MAIL=/var/spool/mail/root
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
PWD=/root
SHELL=/bin/bash
SHLVL=1
SSH_CLIENT=121.228.206.52 31795 22
SSH_CONNECTION=121.228.206.52 31795 205.185.124.26 22
SSH_TTY=/dev/pts/0
TERM=xterm
USER=root

我的问题是它有什么问题?我怎么能主动设置一个新的“AT”工作并在重启后使其正常工作?

非常感谢 奥斯汀

1 个答案:

答案 0 :(得分:1)

重启时清除作业;它们不适合重启后应该发生的cron作业。

幸运的是,有一个特殊的@reboot crontab条目,可让您在重启后运行作业。如果您需要等待5分钟,则可以插入适当的sleep

但是,如果你真正想做的是阻止SSH服务器首先启动,你应该关闭chkconfig服务。我不是100%确定CentOS上的名字是什么,但在Ubuntu上它将是chkconfig ssh off