Cronjob не будет работать должным образом

Похоже, что удаленный сервер переставляет ключи - чаще всего это происходит из-за настройки xmodmap, которая не учитывает, что у разных клиентов могут быть разные потребности.

Место хранения/применения настроек зависит от вашего окружения (простой X / Gnome / KDE / CDE / etc.).

1
24.08.2018, 12:47
1 ответ

Задания Cron выполняются в среде оболочки, которая может сильно отличаться от вашей обычной интерактивной среды оболочки. Например, переменная PATHможет содержать список различных каталогов и может отсутствовать некоторые каталоги, из которых вы привыкли запускать утилиты.

Выясните, где находится утилита ufw(, используя command -v ufwв командной строке ), затем либо

  1. использовать в сценарии полный путь к этой утилите или
  2. изменить переменную PATHвнутри сценария, чтобы она включала каталог, в котором могут быть найдены утилиты ufwiptables).

В сценарии, как показано в вопросе, отсутствует правильная строка #!-. Это не проблема, если вы явно запускаете его с sh, но вы не делаете этого в спецификации задания cron. Вместо этого сделайте скрипт исполняемым, а затем напишите его как

#!/bin/sh

PATH="$PATH:/usr/sbin:/sbin"

ufw allow 27017 && iptables -F

Затем вызовите скрипт из вашего crontab точно так же, как вы это делаете сейчас.

Здесь я также добавил два каталога /usr/sbinи /sbinв переменную PATH, просто чтобы показать, как это можно сделать в скрипте.

8
27.01.2020, 23:12

Теги

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