Из этой статьи вы узнаете про фоновые задания и как с ними работать на роутерах фирмы MikroTik под управлением операционной системы RouterOS.
Пример работы фонового задания
Фоновые задания на MikroTik, а точнее в операционной системе RouterOS — это такие задания, которые не связаны с работой сети и при этом выполняются в фоне. В этой статье я на практике покажу как увидеть фоновые задания или запустить их.
Во-первых, откройте два окна в WinBox: File List (Files) и Script List (System / Scripts):
Для того чтобы увидеть список фоновых заданий в окне «Script List» перейдите на вкладку «Jobs«. Как видите, сейчас список пуск, так как фоновые задания в данное время не выполняются:
А теперь откройте терминал (New Terminal), при этом в списке заданий появляется первое фоновое задание:
Получается что запущенный терминал сам по себе является фоновым заданием!
Запуск команды в фоновом режиме
Для того чтобы запустить команду или скрипт в фоновом режиме нужно использовать команду /execute. Так как команда или скрипт будет выполнятся в фоне, то вывод этой команды лучше перенаправить в файл, что также возможно.
Например, выполните в терминале следующую команду:
/execute script={ping 8.8.8.8} file=ping.txt
Здесь в качестве скрипта я выполняю ping 8.8.8.8 и вывод перенаправляю в файл ping.txt.
После чего у вас появится второе фоновое задание и файл ping.txt:
После некоторого времени удалите появившееся фоновое задание в окне Script List. При этом размер файла ping.txt перестанет расти:
Флаги, которые вы видите выше означают следующее:
L — это Login (открытие терминала);
C — это Comand (запуск команды или скрипта).
Для того чтобы посмотреть содержимое файла не скачивая его, выполните:
/file/print detail without-paging where name=ping.txt 1 name="ping.txt" type=".txt file" size=1203 creation-time=dec/22/2021 16:32:01 contents= SEQ HOST SIZE TTL TIME STATUS 0 8.8.8.8 56 110 34ms968us 1 8.8.8.8 56 110 34ms997us 2 8.8.8.8 56 110 34ms831us 3 8.8.8.8 56 110 35ms198us 4 8.8.8.8 56 110 35ms173us 5 8.8.8.8 56 110 34ms918us 6 8.8.8.8 56 110 35ms79us 7 8.8.8.8 56 110 35ms86us 8 8.8.8.8 56 110 35ms514us 9 8.8.8.8 56 110 35ms265us 10 8.8.8.8 56 110 34ms895us 11 8.8.8.8 56 110 35ms349us 12 8.8.8.8 56 110 35ms130us 13 8.8.8.8 56 110 35ms853us 14 8.8.8.8 56 110 35ms27us sent=15 received=15 packet-loss=0% min-rtt=34ms831us avg-rtt=35ms152us max-rtt=35ms853us
Как видите, результат команды ping 8.8.8.8 был записан в файл ping.txt. И всё это работало в фоновом режиме благодаря команде /execute.
Просмотр списка фоновых заданий в терминале
Посмотреть список фоновых заданий можно и в терминале. Но не забывайте что сама команда просмотра фоновых заданий, это тоже фоновое задание. А вот сама команда и результат её выполнения:
/system/script/job/print terse 0 owner=admin policy=local,telnet,ssh,ftp,reboot,read,write,policy,test,winbox,password,web,sniff, sensitive,api,romon,dude,tikapp,rest-api started=dec/22/2021 16:06:02 type=login 1 owner=admin policy=local,telnet,ssh,ftp,reboot,read,write,policy,test,winbox,password,web,sniff, sensitive,api,romon,dude,tikapp,rest-api parent=*1 started=dec/22/2021 17:25:15 type=command
Здесь видно два фоновых задания. В моём случае первое фоновое задание — это терминал (type=login), а второе — это сама команда «/system/script/job/print terse» (type=comand). Также, здесь видно кто запустил фоновое задание (owner=admin), права с которыми работает фоновое задание (policy=…) и время запуска (started=…).
Спасибо за внимание! Другие статьи по MikroTik можете посмотреть здесь!
Спасибо что пишете такие полезные фишки!