连续运行bash脚本列表

时间:2009-12-24 15:41:54

标签: bash cron

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

我写了一个脚本,它基本上只是连续调用每个脚本并位于cron.daily中,但是我想要一种方法让这个脚本工作,即使我添加和删除备份脚本而不必手动编辑它。 / p>

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

感谢。

3 个答案:

答案 0 :(得分:5)

#!/bin/sh    
for script in /usr/bin/backup*.sh
do
$script
done

答案 1 :(得分:4)

#!/bin/bash
for SCRIPT in /usr/bin/backup*.sh
do
   [ -x "$SCRIPT" ] && [ -f "$SCRIPT" ] && $SCRIPT   
done

答案 2 :(得分:2)

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

您的系统可能只是通过将脚本放入目录(例如/etc/cron.hourly /

)来使用它来每小时,每天等运行cron作业

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