Как использовать содержимое файла в качестве аргументов в crontab

Как использовать содержимое файла в качестве аргументов в crontab

У меня есть файл («IPcontainer»), содержащий одиночный IP-адрес, и я хочу использовать его следующим образом:

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

Смотрите также

Связанный контент