Sudo crontab -e
と入力するとcronコマンドが表示されないことに気づきましたが、crontab -e
だけを入力するとコマンドが表示されます。
2つの間に違いはありますか?ある場合、どこにcronコマンドを配置すればよいですか、それはSudoにあるのか、それともsudoなしにあるのですか?
ありがとう!
2つの間に違いはありますか?
はい、確かに違います。違いは、Sudo crontab -e
では、コマンドがroot
ユーザーの資格情報を使用してスケジュールされることです。 Sudoのcronテーブルのコマンドがrootユーザーとして実行されるようにします。
ただし、crontab -e
では、コマンドはログインしている通常のユーザーでスケジュールされます。
私のcronコマンドはどこに置くべきですか、それはSudoにあるべきですか、それともsudoなしにあるべきですか?
まあ、これに対する答えは、実行したいコマンドのタイプに依存します。
コマンドがSudo
アクセスを必要とする場合、Sudo crontab -e
を使用する必要があります。
または、cronコマンドが特別な権限を必要としない場合は、crontab -e
を使用します。
例:
イーサネットネットワークインターフェイスeth0
を特定の時間に無効または有効にする必要がある場合は、次のコマンドを使用しますifconfig eth0 up
またはifconfig eth0 down
上記のコマンドには特別な権限(Sudo)が必要であるため、これらのコマンドはSudo's
cronタブに追加されることになっています
$ rm /tmp/somefile
のようにtmp
ディレクトリからファイルを削除するなど、最小限の権限または権限なしを必要とする他のコマンドは、通常のユーザーのcrontabを使用します。
問題の主な部分は、あなたがあなたの物事を成し遂げたいと思っているユーザーの世話をすることです。それ以外の場合は、cronジョブはトリガーされません。また、コマンドの出力を任意のファイルに書き込むようにしてください。これは、おそらく相対パスに関連している可能性のある問題をデバッグするのに役立ちます。それが私が困難に直面したことです。以下のステップに従って進むことができます:
ありがとう!