cron "@reboot"スケジュールはネットワーク構成スクリプトを実行しません。

cron "@reboot"スケジュールはネットワーク構成スクリプトを実行しません。

バージョン: Ubuntu 20.04.6 LTS

私のcrontabには次のものがあります。

@reboot /home/<user>/startup.sh

その他の出力:

<user>@eveng-gcp-v3:~$ ls -la | grep start
-rwxr-xr-x 1 root           root            154 Dec  3 11:57 startup.sh
<user>@eveng-gcp-v3:~$ pwd
/home/<user>

スクリプト:

<user>@eveng-gcp-v3:~$ cat startup.sh
ip address add 192.168.0.1/24 dev pnet9

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -o pnet0 -s 192.168.0.0/24 -j MASQUERADE

この3つのコマンドは正確で、手動で実行すると期待どおりに機能します。

起動時に実行されることをどのように確認しますか?

答え1

cron スクリプトの実行時にネットワークインタフェースが準備されていません。遅延:

@reboot sleep [time in seconds] && /home/<user>/startup.sh

答え2

スクリプトが欠落しているため、スクリプトを実行できるかどうか疑われます。」シェルボーン". #!/bin/sh(またはお気に入りのシェル)を追加します。

cronまた、syslog、ORのログ、およびORrootのメールボックスでエラーメッセージを確認する必要があります。

答え3

問題は、私のユーザーのcrontabを使用していますが、通常のユーザーがジョブを@reboot実行できないことです。代わりにルートのcrontab()を使用しましたが、期待sudo crontab -eどおりに機能しました!

みんなありがとうございます!

関連情報