Как создать постоянное задание cron на Ubiquiti Edgerouter-X, чтобы оно оставалось там после обновления прошивки

Как создать постоянное задание cron на Ubiquiti Edgerouter-X, чтобы оно оставалось там после обновления прошивки

У нас есть десятки Ubiquiti Edgerouter-X, которые активны на клиентских локациях. Они, помимо прочего, отвечают за пингование IP каждую минуту. Это делается cronjob (устанавливается с помощью crontab -e) и работает нормально, пока не будет обновлена ​​прошивка.

Когда прошивка обновляется до новой версии, cronjobs «сбрасываются» до значения по умолчанию. После некоторых исследований я заметил, что мне следует использовать system task-schedulerвместо cronjob. Поэтому я создал ping.shфайл в /config/scripts/, установил разрешения на 0755и сделал chmod +x ping.sh. Это содержимое файла ping.sh(для тестовых целей)

#!/bin/bash
echo "Ping Pong!"
echo "Ping Pong!!" >> result.txt    

Когда я запускаю скрипт вручную, ./ping.shскрипт работает нормально, он выводит эхо Ping Pong!и пишет Ping Pong!!в result.txt. Когда я пытаюсь запустить скрипт с помощью , system task-schedulerон ничего не делает. Я попробовал 2 конфигурации планировщика задач и перезапустил Edgerouter после commit; save;:

show system task-scheduler task
 task ping-task {
     crontab-spec "* *  *   *   *"
     executable {
         path /config/scripts/ping.sh
     }
 }

и

show system task-scheduler task
 task ping-task {
     executable {
         path /config/scripts/ping.sh
     }
     interval 1m
 }

Что я не так сделал? Я проверил несколько тем об этом наhttps://community.ui.com/но не смог найти решение...

решение1

Ваше решение показалось мне совершенно оптимальным (работает наEdgeRouter X v2.0.9-hotfix.1).

Я полагаю, что у вас просто возникли проблемы с относительными путями или разрешениями при записи файла result.txt.

Я задал абсолютный путь для result.txt/tmpкаталоге) и это сработало:

cat > /config/scripts/pinger.sh <<'EOF'
#!/bin/bash
echo "Ping Pong!!" >> /tmp/result.txt
EOF

chmod +x /config/scripts/pinger.sh

configure
set system task-scheduler task pinger executable path /config/scripts/pinger.sh
set system task-scheduler task pinger interval 1m
commit ; save ; exit

watch cat /tmp/result.txt

С помощью последней команды вы можете увидеть, как строка добавляется каждую минуту.

Связанный контент