连续运行bash脚本列表

连续运行bash脚本列表,bash,cron,Bash,Cron,我有很多bash脚本,可以将不同的目录备份到不同的位置。我希望每个人每天都跑步。但是,我想让它们不会同时运行 我编写了一个脚本,基本上只是连续调用每个脚本,并放在cron.daily中,但我希望该脚本能够正常工作,即使我添加和删除备份脚本而不必手动编辑它 所以我需要做的是生成一个脚本列表(例如“dir-1/usr/bin/backup*.sh”),然后依次运行找到的每个脚本 谢谢。如果您的系统有,那么它将为您解决问题。您可以将脚本命名为“10script”、“20anotherscript”,它

我有很多bash脚本,可以将不同的目录备份到不同的位置。我希望每个人每天都跑步。但是,我想让它们不会同时运行

我编写了一个脚本,基本上只是连续调用每个脚本,并放在cron.daily中,但我希望该脚本能够正常工作,即使我添加和删除备份脚本而不必手动编辑它

所以我需要做的是生成一个脚本列表(例如“dir-1/usr/bin/backup*.sh”),然后依次运行找到的每个脚本

谢谢。

如果您的系统有,那么它将为您解决问题。您可以将脚本命名为“10script”、“20anotherscript”,它们将以类似于
rc*.d
层次结构的方式按顺序运行(但通过init或Upstart运行)。在某些系统上,它是一个脚本。在我的电脑上,它是一个二进制可执行文件

#!/bin/sh    
for script in /usr/bin/backup*.sh
do
$script
done
很可能您的系统正在使用它来运行每小时、每天等cron作业,只需将脚本放入目录中,如/etc/cron.hourly/

但要特别注意。(例如,不要使用点。)检查特定于您的系统的手册页,因为文件命名限制可能会有所不同。

如果您的系统有此限制,则将为您解决此问题。您可以将脚本命名为“10script”、“20anotherscript”,它们将以类似于
rc*.d
层次结构的方式按顺序运行(但通过init或Upstart运行)。在某些系统上,它是一个脚本。在我的电脑上,它是一个二进制可执行文件

很可能您的系统正在使用它来运行每小时、每天等cron作业,只需将脚本放入目录中,如/etc/cron.hourly/


但要特别注意。(例如,不要使用点。)检查特定于您的系统的手册页,因为文件命名限制可能会有所不同。

这是一个非常好的主意,因为只需运行
chmod-x backup foo.sh
@ghostdog:如果您要调用
/bin/bash
,就可以很容易地临时禁用其中一个备份脚本,你真的没有必要用[[而不是[@Siegex,谢谢你的观点。我会在适当的时候使用它,但在这种情况下,使用[是非常好的。我知道这是非常非常古老的,但我只是偶然发现了这个答案。什么是[-f]test for?-x已经在测试文件是否存在了?这个
x
位是一个非常好的主意,因为只要运行
chmod-x backup foo.sh
@ghostdog,就可以很容易地临时禁用其中一个备份脚本:如果要调用
/bin/bash
,那么您真的不需要使用[[而不是][@Siegex,谢谢你。我会在适当的时候使用它,但在这种情况下,使用[是非常好的。我知道这是非常非常古老的,但我只是偶然发现了这个答案。什么是[-f]测试?-x已经测试了一个文件是否存在?非常感谢,我将尝试它。这是不可伸缩的,因为glob如果扩展到太多文件将失败。如果没有文件,它将失败。非常感谢,我将尝试它。这是不可伸缩的,因为glob如果扩展到太多文件将失败。如果没有文件,它将失败。
#!/bin/bash
for SCRIPT in /usr/bin/backup*.sh
do
   [ -x "$SCRIPT" ] && [ -f "$SCRIPT" ] && $SCRIPT   
done