Cod*_*nja 2 cron task-scheduler ubiquiti
我们在客户位置有数十个处于活动状态的 Ubiquiti Edgerouter-X。它们负责每分钟 ping 一个 IP。这是通过 cronjob(使用 crontab -e 设置)完成的,只要固件未更新,就可以正常工作。
当固件更新到较新版本时,cronjobs 将“重置”为默认值。经过一番研究后,我发现我应该使用system task-schedulercronjob 来代替。所以我ping.sh在 中创建了一个文件/config/scripts/,将权限设置为0755并执行了chmod +x ping.sh. 这是文件的内容ping.sh(用于测试目的)
#!/bin/bash
echo "Ping Pong!"
echo "Ping Pong!!" >> result.txt
Run Code Online (Sandbox Code Playgroud)
当我手动执行脚本时,./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
}
}
Run Code Online (Sandbox Code Playgroud)
和
show system task-scheduler task
task ping-task {
executable {
path /config/scripts/ping.sh
}
interval 1m
}
Run Code Online (Sandbox Code Playgroud)
我做错了什么?我在https://community.ui.com/上检查了有关它的多个主题,但找不到解决方案...
小智 5
您的解决方案对我来说似乎非常好(在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
Run Code Online (Sandbox Code Playgroud)
使用最后一个命令,您可以看到每 1 分钟添加一行。
| 归档时间: |
|
| 查看次数: |
4839 次 |
| 最近记录: |