Похоже, что удаленный сервер переставляет ключи - чаще всего это происходит из-за настройки xmodmap, которая не учитывает, что у разных клиентов могут быть разные потребности.
Место хранения/применения настроек зависит от вашего окружения (простой X / Gnome / KDE / CDE / etc.).
Задания Cron выполняются в среде оболочки, которая может сильно отличаться от вашей обычной интерактивной среды оболочки. Например, переменная PATH
может содержать список различных каталогов и может отсутствовать некоторые каталоги, из которых вы привыкли запускать утилиты.
Выясните, где находится утилита ufw
(, используя command -v ufw
в командной строке ), затем либо
PATH
внутри сценария, чтобы она включала каталог, в котором могут быть найдены утилиты ufw
(и iptables
). В сценарии, как показано в вопросе, отсутствует правильная строка #!
-. Это не проблема, если вы явно запускаете его с sh
, но вы не делаете этого в спецификации задания cron. Вместо этого сделайте скрипт исполняемым, а затем напишите его как
#!/bin/sh
PATH="$PATH:/usr/sbin:/sbin"
ufw allow 27017 && iptables -F
Затем вызовите скрипт из вашего crontab точно так же, как вы это делаете сейчас.
Здесь я также добавил два каталога /usr/sbin
и /sbin
в переменную PATH
, просто чтобы показать, как это можно сделать в скрипте.