web-dev-qa-db-ja.com

Linuxでの「Sudo crontab -e」と「crontab -e」の違い

Sudo crontab -eと入力するとcronコマンドが表示されないことに気づきましたが、crontab -eだけを入力するとコマンドが表示されます。

2つの間に違いはありますか?ある場合、どこにcronコマンドを配置すればよいですか、それはSudoにあるのか、それともsudoなしにあるのですか?

ありがとう!

16

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を使用します。

24
Santosh A

問題の主な部分は、あなたがあなたの物事を成し遂げたいと思っているユーザーの世話をすることです。それ以外の場合は、cronジョブはトリガーされません。また、コマンドの出力を任意のファイルに書き込むようにしてください。これは、おそらく相対パスに関連している可能性のある問題をデバッグするのに役立ちます。それが私が困難に直面したことです。以下のステップに従って進むことができます:

  1. 行きたいユーザー名を特定します。 whoamiコマンドを使用します。
  2. 選択したユーザーモードに切り替えて、「crontab -e」と入力します。
  3. そして、行を追加します<cron-schedule your-command >> output_filename.cron 2>&1>
  4. それでおしまい。

ありがとう!

0
Hafiz Hashim