我有很多计算机,我在它们之间进行 ssh。
我有一个 cron 文件,我手动将其输入到每台计算机中。当我更改此 cron 文件时,我必须手动 ssh 到每台计算机以相应地更新其 cron。
有没有办法让每台电脑的cron,成为这个文件的一个功能?
这样我就可以只有一个文件,它可以在计算机之间同步,从而更新每台计算机中的 cron。
答案1
这个答案假设您关心特定用户的 crontab myuser
。
从文件 ( ) 中重新读取 cron 计划的 cron 作业crontab crontab.txt
将相当容易设置,但您可以ssh
直接使用
ssh myuser@remote crontab - <crontab.txt
crontab.txt
本地存储在哪里。
这可以放入循环中:
#!/bin/bash
remotes=( remote1 remote2 remote3 )
for remote in "${remotes[@]}"
do
ssh "myuser@$remote" crontab - <crontab.txt
done
我最初在上面跳过的另一种方法是重新读取 crontab 的作业:
这需要一个 crontab 至少有这样的工作:
0 * * * * crontab "$HOME/crontab.txt"
crontab.txt
此作业每小时从您的主目录中重新读取时间表。该文件应始终至少包含此作业。然后,您可以将其他作业添加到该文件(通过从其他地方同步文件),这些作业将在该小时添加到用户的活动 crontab 中。