我写了一个小脚本来每天更新一些Linux计算机(除此之外,这就是为什么cron作业不会这样做)。 它意味着在晚上运行并ssh进入每个客户端,更新它并在没有其他用户登录时关闭它。我提出的解决方案是:
ssh "$value" 'apt-get update && apt-get -y upgrade && if [ $(who | wc -l) != 1 ] ; then exit; else poweroff; fi;' >> "/var/log/updates/$value.log"
运行脚本时,我会在意外令牌附近出现语法错误'然后'。 任何帮助表示赞赏
编辑:我知道cronjob是什么以及如何设置它。 这就是cronjob不会做的原因:
答案 0 :(得分:0)
无需ssh到每个客户端。您可以将以下cronjob添加到每个客户端,如下所示
cronjob每天00.00午夜添加(运行此root或sudo用户)
crontab -e
添加:
0 0 * * * root sh /home/user/run.sh
例如:01 with&&
cat run.sh
apt-get update && apt-get -y upgrade && if [ $(who | wc -l) != 1 ] ; then exit; else poweroff; fi;' >> "/var/log/updates/$value.log"
如果其中一个命令失败,则不会执行其后的所有其他命令。
如果要执行所有命令而不管先前的命令是否失败,请用分号分隔:
例如:02;命令
cat run.sh
apt-get update && apt-get -y upgrade ; if [ $(who | wc -l) != 1 ] ; then exit; else poweroff; fi;' >> "/var/log/updates/$value.log"