
우리는 고객 위치에서 수십 개의 Ubiquiti Edgerouter-X를 활성화하고 있습니다. 무엇보다도 매분 IP에 핑을 보내는 일을 담당합니다. 이는 cronjob(crontab -e로 설정)에 의해 수행되며 펌웨어가 업데이트되지 않는 한 제대로 작동합니다.
펌웨어가 최신 버전으로 업데이트되면 cronjob이 기본값으로 "재설정"됩니다. 몇 가지 조사를 한 후에 나는 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!
하고 . 스크립트를 실행하려고 하면 아무 작업도 수행되지 않습니다. 2가지 작업 스케줄러 구성을 시도하고 다음 이후에 Edgerouter를 다시 시작했습니다 .Ping Pong!!
result.txt
system task-scheduler
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
마지막 명령을 사용하면 1분마다 한 줄이 추가되는 것을 볼 수 있습니다.