sudoを使用してrootのcrontabにタスクをエコーすることはできません。 - シェルが中断されます。

sudoを使用してrootのcrontabにタスクをエコーすることはできません。 - シェルが中断されます。

私は現在、ルートのcrontabにタスクを追加するbashスクリプトを作成しています。私はコマンドを使ってそれを達成しようとしました。

sudo crontab -e -u root | { cat; echo "@reboot /home/$CURRENT_USER/scripts/reboot.sh"; } | crontab -

Ubuntu Server 18.04のシェルでこのコマンドをテストしていますが、sudoパスワードを入力するとシェルが完全にフリーズします。私はこれを何度もテストしました。サーバーリソースは正常で、新しいSSH接続を確立した後はすべて正常です。

このコマンドの問題が何であるか、root crontabに何かを書くようにするにはどうすればよいかを理解するのに役立ちます(sudo suは新しいシェルが作成されスクリプトが停止するため機能しません)。

ベストアンサー1

crontab -e編集者に電話してください。エディタの出力はcatコマンドとして送信されますが、(せいぜい)ファイルの編集を待っています。

おそらくこのようにする必要があると思います。

job="@reboot /home/$CURRENT_USER/scripts/reboot.sh"
tab="$(crontab -l)"
{ echo "$tab" | grep -vxF -e "$job"; echo "$job"; } | crontab

コードスニペットがまだルートとして実行されていない場合は、動詞の2つのインスタンスをcrontab次のように変更します。sudo crontab -u root

おすすめ記事