web-dev-qa-db-ja.com

crontabでBashファイルをrootとして実行することは可能ですか?

定期的に実行するには Bash ファイルが必要であり、ルートとして実行する必要があります。

それは可能ですか?

[root@file nutch-0.9]# locate crontab
/etc/crontab
/etc/sysconfig/crontab
/usr/bin/crontab
/usr/share/man/man1/crontab.1.gz
/usr/share/man/man1p/crontab.1p.gz
/usr/share/man/man5/crontab.5.gz
/usr/share/vim/vim71/syntax/crontab.vim
[root@file nutch-0.9]# 
17
omg

はい、それをrootユーザーの crontab に追加するだけです。 crontab -eコマンド。

Cronがファイルを保存する場所はちょっと変わっている可能性があるため、crontab -eコマンドが正しい場所にあることを確認します。構文をチェックすると思います。

19
whatsisname

あなたはただすることができます

crontab -e

ルートとして。

12
FreeMemory

/etc/crontabのエントリのユーザーとしてrootを指定するだけです。

0 0 *  * *  root  somecommand

または、crontab -eをルートとして使用して、コマンドをルートの個人用crontabに追加することもできます。

7
sth

何があっても、rootユーザーアカウントにアクセスできる必要があります。

  1. 提案されているように、ルートのcrontabに追加できます。
  2. 推奨通り、Sudoを使用できます
  3. setuidビットを使用できます。 setuidビットの問題は、コンパイルされたプログラムである必要があることです。コンパイルされている場合は、「chmod 4755」でファイルの所有者をrootに設定すると、rootとして実行されます。コンパイルされていない場合は、C(またはその他のコンパイルされたプログラミング言語)で小さなラッパーを記述して、スクリプトとラッパーのsetuidを呼び出すだけで、ラッパーがルートによって所有されていることを確認できます。

私のアドバイス?ルートcrontabを使用します。それはそこにあるのです。

また、sthで提案されているように、crontabにユーザーエントリはありません...構文は次のとおりです。

# .---------------- minute (0 - 59) 
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ... 
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7)  OR Sun,mon,tue,wed,thu,fri,sat 
# |  |  |  |  |
# *  *  *  *  *  command to be executed

Rootとしてcrontabに何かを入力する場合は、rootアカウント「crontab -e」にログインし、voila ... root crontabにログインします。

5
Marduk

Rootのcrontabのすべてのエントリはrootとして実行されると思います。アクションとしてBashスクリプトを呼び出すだけで、必要な処理を実行できます。

0
rmeador