Запустите список сценариев bash последовательно - PullRequest
1 голос
/ 24 декабря 2009

У меня есть множество скриптов bash, которые создают резервные копии разных каталогов в разных местах. Я хочу, чтобы каждый бегал каждый день. Однако я хочу, чтобы они не запускались одновременно.

Я написал сценарий, который в основном просто вызывает каждый сценарий подряд и находится в cron.daily, но я хочу, чтобы этот сценарий работал, даже если я добавляю и удаляю сценарии резервного копирования без необходимости вручную редактировать его. 1003 *

Итак, мне нужно сгенерировать список сценариев (например, "dir -1 /usr/bin/backup*.sh") и затем запустить каждый найденный сценарий по очереди.

Спасибо.

Ответы [ 3 ]

5 голосов
/ 24 декабря 2009
#!/bin/sh    
for script in /usr/bin/backup*.sh
do
$script
done
4 голосов
/ 24 декабря 2009
#!/bin/bash
for SCRIPT in /usr/bin/backup*.sh
do
   [ -x "$SCRIPT" ] && [ -f "$SCRIPT" ] && $SCRIPT   
done
2 голосов
/ 24 декабря 2009

Если ваша система имеет run-parts, то это позаботится об этом за вас. Вы можете назвать свои сценарии как «10script», «20anotherscript», и они будут выполняться в порядке, аналогичном иерархии rc*.d (которая запускается через init или Upstart, однако). В некоторых системах это скрипт. По моему это двоичный исполняемый файл.

Вполне вероятно, что ваша система использует его для выполнения часовых, ежедневных и т. Д. Заданий cron, просто помещая сценарии в такие каталоги, как /etc/cron.hourly/

Обратите особое внимание на как вы называете свои сценарии . (Например, не используйте точки.) Проверьте справочную страницу, относящуюся к вашей системе, поскольку ограничения именования файлов могут различаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...