如何在 crontab 中使用檔案內容作為參數

如何在 crontab 中使用檔案內容作為參數

我有一個包含單一 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

也可以看看

相關內容