回答:
/etc/crontab
のファイルのみに/etc/cron.d/
ユーザー名フィールドがあります。そのファイルでこれを行うことができます:
1 1 * * * username /path/to/your/script.sh
ルートのcrontabからsudo crontab -e
次を使用できます。
1 1 * * * su username -c "/path/to/your/script.sh"
または、次のようにユーザーの実際のcrontabを使用できます。
sudo crontab -u username -e
crontabファイルの2番目の列は、ジョブを実行する時間です。6番目のフィールドを意味しましたか?
/etc/cron.d/
ファイルはの一部です/etc/crontab
。 sudo
また無意味です。その部分を削除します。
sudo su...
一般的に不要です。sudo -u <user> <command>
通常は十分です。(b) TTYが接続されていない場合(cronで実行される場合など)、一部のシステムではsudoが停止します。これは、sudoersファイルで修正できます。
使用している実行可能ファイルが/ usr / local / binなどにある場合、そのユーザーのPATHを設定する必要があるかもしれません。PATHを設定するには、cronjobsの前に次のようなものを置きます。
PATH=/bin:/usr/bin:/usr/local/bin
*/5 * * * * user1 sample_executable
もう1つの方法は、cronjobでsample_executableへのパスを完全に指定することです。
*/5 * * * * user1 /path/to/sample_executable
sample_executableが標準PATHにない実行可能ファイルを参照する場合、最初のオプションを使用する必要があります。
ユーザーcrontabsの一般的なディレクトリは/ var / spool / cron / crontabsにあります。ファイル形式は、ユーザー名を含まない形式です。ユーザーcrontabはユーザーが所有し、モード0600のユーザーにちなんで命名されます。これは、タブファイルを記述し、crontab -u username filename
そのユーザーに必要なcronエントリをセットアップするために使用することで最適に処理されます。