Похожие вопросы

Как установить ComixCursors (или другие темы X-cursor) в Ubuntu с помощью сценария оболочки?
Как создать действительный случайный MAC-адрес с помощью bash shell
частичное завершение пути к каталогу в стиле emacs в bash
последовательное выполнение команды SSH не работает в Ubuntu / Bash
Rsync копировать символические ссылки и исключить подпапку
терминал iTerm/OSX: изменение поля текста от края окна
Как правильно создать символическую ссылку?
невозможно выполнить: слишком много уровней символьных ссылок
Различия управления процессами демона
Прятать пароль в скрипт
Linux Bash: перемещение / копирование файлов / каталогов по метке времени
tar: не удается создать символическую ссылку: файл существует
Управление несколькими серверами Linux одновременно
Скрипт Bash, который автоматически меняет раскладки клавиатуры и мыши на основе активного окна
Скрипт Crontab не сохраняет результат в файл

Как впоследствии выполнить все команды в crontab?

рассмотрим сложную crontab +100 строк, где много скриптов запускаются впоследствии для опроса и обработки сообщений от разных клиентов.

после перезагрузки сервера я запускаю некоторые скрипты наиболее важных клиентов для немедленного запуска (копирование / вставка).

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

все скрипты находятся в /opt/ , поэтому все строки выглядят так:

m h  dom mon dow     /opt/XXXXXX/YYYYY/ZZZZZ.sh >/dev/null 2>&1

в m, h & dow " / " & " - " являются также иногда используется, Ф.е. :

*/3 5-21 * * 1-5     /opt/XXXXXX/YYYYY/ZZZZZ.sh >/dev/null 2>&1
*/5 0-1,5-23 * * *   /opt/XXXXXX/YYYYY/ZZZZZ.sh >/dev/null 2>&1
25 2 * * 7           /opt/XXXXXX/YYYYY/ZZZZZ.sh >/dev/null 2>&1

crontab -l | grep -v "#" | wc -l
129

Т. И. А.


Jord

5
задан Jord Wegge
источник

3 ответов

у вас уже есть задатки ответ на ваш вопрос.

если вы измените свой crontab строки:

crontab -l | grep -v "#" | grep -o '/opt/.*$' > cron.tmp

затем cron.tmp будет содержать все команды, которые необходимо выполнить. Вы можете запустить его как есть с . ./cron.tmp, или вы можете сделать его исполняемым и запустить его непосредственно с chmod +x cron.tmp && ./cron.tmp.

если вы хотите, чтобы избежать временный файл, вы можете использовать:

crontab -l | grep -v "#" | grep -o '/opt/.*$' | while read l; do eval $l; done

вы должны использовать eval так что перенаправления в командах будут действовать на.

обратите внимание, что вы могли бы объединить два grep работает в одном sed замена:

crontab -l | sed -n 's=^[^#]*\(/opt/.*$\)==p' | while read l; do echo eval $l; done
0
отвечен AFH 2018-10-01 13:46:46
источник

возможно, вы ищете run-parts команда, который принимает каталог в качестве параметра и будет запускать каждый исполняемый файл или сценарий в этом каталоге.

например :

run-parts /etc/cron.daily
1
отвечен harrymc 2018-10-01 13:35:53
источник

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

сделать скрипт, который делает это, а затем вызвать его из crons @reboot:

#!/bin/bash
for script in /opt/XXXXXX/YYYYY/*.sh; do
 $script
 done

если у вас есть рекурсивного обхода дерева каталогов:

#!/bin/bash
find /opt/XXXXXX/ -name '*.sh' -type f -exec '{}' \;

есть только некоторые сценарии, которые вы хотите запустить, но их куча?

этого для каждой такой скрипт:

ln -s /opt/XXXXXX/YYYYY/whatever.sh /opt/run-at-reboot/

тогда звоните из crons @reboot:

#!/bin/bash
for script in /opt/run-at-reboot/*.sh; do
 $script
 done
0
отвечен LawrenceC 2018-10-01 13:48:20
источник

Другие вопросы bash cron crontab linux script