如何自动设置“AT”重新启动后安排一次作业
当我通过 ssh 以 root 身份登录 centos 时 我输入
at -f /etc/at_stopssh.txt now + 5 minutes
并且它有效,一个计划作业已在
_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”作业并使其在重新启动后正常工作?
非常感谢 奥斯汀
when I loging in centos as root via ssh
i type
at -f /etc/at_stopssh.txt now + 5 minutes
and it works, one schedule job has been setup sucessfully
at_stopssh.txt include a simple command shows below
service sshd stop
then i try to automate it after rebooting by adding it into
rc.local file. so i add a new line in the rc.local
at -f /etc/at_stopssh.txt now + 5 minutes
after reboot . i checked by atq command, it seems there is no job schedule has been added.
I try it in another way. i added another newline into rc.local file shows below
echo "/sbin/service/service /usr/sbin/sshd/sshd stop"|/usr/bin/at now + 5 minutes
and it was non funcational at all again.
for your reference it is my env file content shows below
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
My question is what is wrong with it? how could i aotomatically setting up a new "AT" job and make it functional after a reboot?
Many thanks
Austin
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
重新启动后,当前作业将被清除;它们不适合重启后发生的 cron 作业。
幸运的是,有一个特殊的
@reboot
crontab 条目可让您在重新启动后运行作业。如果需要等待 5 分钟,可以插入适当的睡眠
。但是,如果您真正想要做的是首先阻止 SSH 服务器启动,则应该
chkconfig
关闭该服务。我不能 100% 确定 CentOS 上的名称是什么,但在 Ubuntu 上它将是chkconfig ssh off
。At-jobs are cleared upon restart; they’re not appropriate for cron jobs that should occur after restart.
Luckily enough, there is a special
@reboot
crontab entry that lets you run a job after reboot. If you need to wait 5 minutes, you can insert an appropriatesleep
.However, if what you're really trying to do is prevent the SSH server from being started in the first place, you should
chkconfig
the service off. I'm not 100% sure what the name is on CentOS, but on Ubuntu it would bechkconfig ssh off
.