Unix 在登录到多个终端时避免多个cron作业

Unix 在登录到多个终端时避免多个cron作业,unix,cron,redundancy,Unix,Cron,Redundancy,我正在尝试在Unix环境中设置cron,以便每小时将代码和配置文件同步到备份文件夹 我需要这种情况发生时,我登录到我的工作终端,并在每小时的频率。因此,我在.bashrc文件中插入了以下内容: 0 * * * * rsync -avz ~/codes/ /cheap/code_bkp 然而,现在当我登录到多个工作终端时,每个终端都独立运行作业,我每小时收到多封电子邮件(每个终端1封) 我想确保只有一个终端运行cron作业。请建议一些这样做的方法,并避免多终端问题。我认为您想要的是参考计数:如果

我正在尝试在Unix环境中设置cron,以便每小时将代码和配置文件同步到备份文件夹

我需要这种情况发生时,我登录到我的工作终端,并在每小时的频率。因此,我在.bashrc文件中插入了以下内容:

0 * * * * rsync -avz ~/codes/ /cheap/code_bkp
然而,现在当我登录到多个工作终端时,每个终端都独立运行作业,我每小时收到多封电子邮件(每个终端1封)


我想确保只有一个终端运行cron作业。请建议一些这样做的方法,并避免多终端问题。

我认为您想要的是参考计数:如果您将其放入.bashrc

(计数器=$(cat~/.login\u计数);echo$($counter+1))>~/.login\u计数)

在.bash_注销中有类似的内容

(计数器=$(cat~/.login\u计数);echo$($counter-1))>~/.login\u计数)

然后,
~/.login\u count
将包含活动终端会话的数量,假设您总是干净地注销

然后,您可以在cronjob中测试该值是否为非零,以查看是否至少有一个终端登录:


0****[$(cat~/tmp/counter)>0]&&do\u backup

我想你想要的是一个参考计数:如果你把它放在.bashrc中

(计数器=$(cat~/.login\u计数);echo$($counter+1))>~/.login\u计数)

在.bash_注销中有类似的内容

(计数器=$(cat~/.login\u计数);echo$($counter-1))>~/.login\u计数)

然后,
~/.login\u count
将包含活动终端会话的数量,假设您总是干净地注销

然后,您可以在cronjob中测试该值是否为非零,以查看是否至少有一个终端登录:


0****[$(cat~/tmp/counter)>0]&&do\u backup

您的问题不清楚您当前如何识别终端已登录-您提到.bashrc,但您唯一的列表来自crontab。您的问题不清楚您当前如何识别终端已登录-您提到.bashrc,但您唯一的列表来自crontab。