GNU/Linux >> Linux の 問題 >  >> Linux

/etc/crontab を編集するか、root として crontab -e を実行する必要がありますか?

解決策 1:

個人の crontab (crontab -e ) は常にその所有者として実行されます。ここで /etc/crontab 追加の必須の <user> が含まれています 管理者が root 以外のユーザーとして実行するようにジョブを構成できるようにするフィールド。

システムの crontab を編集したり、root 用の個人的な crontab を設定したりすると、おそらく移植性が高くなります。これは、特定の Linux ディストリビューションに固有のものではなく、間違いなく人にとってより便利です。 すべてのジョブを 1 つのファイルにまとめて維持しますが、

個人的には3番目のオプションを支持します :スケジュールされたタスクごとに、いずれかをドロップします

  • /etc/cron.d/ のファイル cron スニペット付き
  • 関連する /etc/cron.[hourly |daily |weekly |monthly] 内の実行可能ファイル (スクリプト) ディレクトリ。

これはスクリプトを作成するのが簡単で (そのようなファイルを作成/上書き/削除するだけで、単一の crontab ファイルの内容をいじる必要はありません)、構成管理ツールとうまく連携し、パッケージ マネージャーは既にそのようになっています。とにかくやっている。

/etc/cron.[hourly |daily |weekly |monthly] のジョブ/スクリプト /etc/cron.d/ の cron スニペットは常に root として実行されます。 カスタムスケジュールの設定と、同じ必須の <user> を持つ別のユーザーとしての実行の両方を許可します /etc/crontab で見つかったフィールド .

解決策 2:

私が覚えている限り、crontab -e には、インストール前に crontab 構文を検証するという追加の利点があり、間違いを犯した場合はエラーが発生し、以前のものを復元します。このように、構文を間違えても、以前は機能していたものが突然停止することはありません。 visudo を実行するなどのユーティリティを使用するのがベストプラクティスだと思います /etc/sudoers を編集するのではなく

解決策 3:

これは実際にはスタイルの問題です。OS によって複数の方法が提供されているのには理由があります。他の人 (または、しばらくシステムを操作していない自分自身) を混乱させたくない場合は、一貫性を保ち、混同しないでください。ホスト全体で実際にどのタスクがスケジュールされているかを確認するのが難しい場合は、その傾向があります。厄介な驚きで終わる.

解決策 4:

特定のユーザーの権限を必要とする cron ジョブを確実に追加するために、私は個人的に次のコマンドを使用します:

 # crontab -u <user> -e

sudo を追加できます

@rackandboneman が述べたように、/etc/cron.d/ ファイルをいじる必要はありません。問題が user の cron ジョブに関するものである場合は、crontab の機能を使用してください コマンド。


Linux
  1. /etc/crontab と crontab -e の違い

  2. Linux で LDAP ユーザーのホーム ディレクトリを編集する

  3. 推奨される使用方法に従って、Web サイトは /var/ または /usr/ に配置する必要がありますか?

  1. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

  2. 設定ファイルを編集する方法は?

  3. / etc / motdはどのように更新されますか?

  1. CentOS / RHEL 6 で /etc/shadow および/または /etc/passwd ファイルの削除されたルート エントリから復元する方法

  2. root 以外のユーザーが crontab エントリを作成できないようにする方法

  3. ユーザーが crontab を編集できない、エラー:「/tmp/crontab.Lm34gsJV:権限が拒否されました」