Wie verwende ich Dateiinhalte als Argumente in Crontab?

Wie verwende ich Dateiinhalte als Argumente in Crontab?

Ich habe eine Datei („IPcontainer“), die eine einzelne IP-Adresse enthält, und möchte sie folgendermaßen verwenden:

6tunnel 80 $(< IPcontainer) 80

Leider funktioniert dies nur, wenn ich es manuell mache, und nicht, wenn ich es als Cronjob verwende, wie folgt:

0 * * * * 6tunnel 80 $(< /home/<MYUSERNAME>/IPcontainer) 80

Soweit ich weiß, basiert cron auf absoluten Pfaden.

Wie muss ich es ändern, damit es funktioniert?

Antwort1

Das liegt daran, dass standardmäßig cronverwendet wird - was die Syntax nicht unterstützt/bin/sh$(< file)

Sie können entweder ersetzen

$(< /home/<MYUSERNAME>/IPcontainer)

durch den POSIX

$(cat /home/<MYUSERNAME>/IPcontainer)

oder sagen Sie cronexplizit, dass Bash verwendet werden soll

SHELL=/bin/bash
0 * * * * 6tunnel 80 $(< /home/<MYUSERNAME>/IPcontainer) 80

Siehe auch

verwandte Informationen