0

当我通过 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”作业并在重新启动后使其正常工作?

非常感谢奥斯汀

4

1 回答 1

1

At-jobs 在重新启动时被清除;它们不适合重启后应该发生的 cron 作业。

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

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

于 2011-03-07T02:22:53.697 回答