我有一个包含单个 IP 地址的文件(“IPcontainer”),我想像这样使用它:
6tunnel 80 $(< IPcontainer) 80
不幸的是,这只有当我手动执行时才有效,而不是像下面这样将其用作 cronjob 时:
0 * * * * 6tunnel 80 $(< /home/<MYUSERNAME>/IPcontainer) 80
据我所知,cron 依赖于绝对路径。
我需要如何改变它才能使其正常工作?
答案1
这是因为默认cron
使用/bin/sh
- 不支持$(< file)
语法
您可以更换
$(< /home/<MYUSERNAME>/IPcontainer)
由 POSIX
$(cat /home/<MYUSERNAME>/IPcontainer)
或者cron
明确告诉使用 bash
SHELL=/bin/bash
0 * * * * 6tunnel 80 $(< /home/<MYUSERNAME>/IPcontainer) 80
也可以看看