Рейтинг:9

Запуск нескольких скриптов в папке с помощью cron

флаг us
bNi

Я работаю со многими сценариями. Поэтому я добавляю/удаляю скрипты с помощью "кронтаб -е" так много раз. Я пытался создать для них структуру "Доступно/Включено".

Пример:
Это дерево моей структуры:

# все скрипты
скрипты/доступно/1.sh
скрипты/доступно/2.sh
скрипты/доступно/3.sh

# включенные скрипты 
скрипты/включено/1.sh -> скрипты/доступно/1.sh
скрипты/включено/2.sh -> скрипты/доступно/2.sh

Затем я добавляю эту строку в "кронтаб -е":

* * * * * /home/user/scripts/enabled/* &> /dev/null

Это результат статус sudo systemctl cron.service :

     Группа CG: /system.slice/cron.service
             ââ17763 /bin/bash /home/user/scripts/enabled/1.sh /home/user/scripts/enabled/2.sh

В заключение:
1.sh работает каждую минуту, а 2.sh не работает.

Я хочу запускать скрипты только из cron. Что я могу сделать для этого, если я не хочу делать скрипт для "запуска скриптов в каталоге" с другим скриптом,?

Также знаете ли вы какую-либо группу Telegram для активных «Системных администраторов GNU/Linux»?

Спасибо.

Someone avatar
флаг my
Пожалуйста, отредактируйте вопрос, чтобы ограничить его конкретной проблемой с достаточной детализацией, чтобы найти адекватный ответ.
bNi avatar
флаг us
bNi
Сейчас все в порядке? @Алгинс
Someone avatar
флаг my
Вы можете одобрить [моё редактирование.](https://askubuntu.com/suggested-edits/174342)
Рейтинг:14
флаг mx

В качестве альтернативы вы можете использовать ходовые части :

* * * * * /usr/bin/run-parts --regex='.+' /home/user/scripts/enabled

Параметр --regex='.+' разрешает любые имена файлов. Подробности: человек.

bNi avatar
флаг us
bNi
Не работал для меня.
pasman pasmański avatar
флаг mx
run-parts по умолчанию не принимает точку в имени файла. Переименуйте `1.sh` в `1` и так далее.
bNi avatar
флаг us
bNi
Спасибо, это сработало!
Рейтинг:5
флаг ar

Пытаться

для скрипта в /home/user/scripts/enabled/*; сделать $script &>/dev/null; сделано
Рейтинг:4
флаг cn

Когда вы указываете

/дом/пользователь/скрипты/включено/*

крон видит

/home/user/scripts/enabled/script1.sh /home/user/scripts/enabled/script2.sh ...

Таким образом, вы выполняете script1.sh используя в качестве аргументов пути к другим сценариям в этом каталоге. Ваш script1 не читает аргументы: поэтому он работает и работает нормально.

Вместо этого есть хрон запустите выражение сценария, чтобы «не уверен, что cron работает с подстановочными знаками так, как вы думаете», что, в свою очередь, запускает все сценарии в включено каталог. Вы можете сделать это с помощью за ... делать петля.

vanadium avatar
флаг cn
@terdon правильно, конечно. я изменил это

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.