Код: Выделить всё
local savefile do={
local path "disk1/traffic/";
/file print file=$1;
delay 2;
/file set $1 contents=$2;
delay 2;
/tool fetch address=127.0.0.1 port=21 mode=ftp user=ftpuser password=ftppassword src-path=("$1") dst-path=("$path$1");
delay 2;
/file remove $1;
}
# Пример вызова
$savefile "filename.txt" "File content.\r\n";
При запуске из терминала (Winbox - New terminal) код выполняется без проблем. При выполнении из планировщика скрипт обрывается по ошибке на строке запуска утилиты fetch. В логе отсутствуют записи о попытке (удачной или нет) логина к FTP (при запуске из терминала - запись имеется).
Аутентификация в Winbox выполняется от имени пользователя с полными (админскими) правами. Политики скрипта - ftp,read,write.
От имени этой учётной записи создаётся и задание планировщика, политики скрипта также ftp,read,write. Права учетной записи ftpuser, используемой fetch - local,ftp,read,write.
Что я не учитываю? Что необходимо, чтобы выполнялся запуск fetch?