毎日午後 3 時に実行してパスワードを自動的に入力する必要がありますsudo php artisan backup:run
。Windows でこれを行う方法は、タスク スケジューラを使用して .bat スクリプトで管理者として実行を設定するだけでわかります。
答え1
これはすべきUbuntu 14.04 では最新リリースとほぼ同じですが、いくつかの違いがある可能性があります。
タスクは 2 つの部分に分かれています。
sudo
パスワードなしで使用できるようにするには、sudoers
ファイルにユーザーを追加し、パスワードを要求しないようにします。- ジョブを自動的に実行するには、 を使用します
cron
。
sudo ユーザ
ユーザーをsudoグループに追加するには
usermod -aG sudo <username>
<username>
ジョブを実行するユーザーに変更します。
パスワードを入力しなくても済むようにするには、次の/etc/sudoers
ファイルを編集します。
visudo
ファイルの末尾に次の行を追加します。
<username> ALL=(ALL) NOPASSWD:ALL
再度、<username>
ジョブを実行するユーザーに変更します。
メインの sudoers ファイルを編集するのではなく、次のように特定のユーザー用に新しい sudoers ファイルを作成する方がよいことに注意してください。
echo "<username> ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/username
詳細についてはUbuntu で Sudoers にユーザーを追加する方法。
この質問も参照してください。コマンドラインを使用してユーザーを新しい sudoer として追加するにはどうすればよいですか?
クローン
cron は非常に強力で、さまざまなオプションがあります。ただし、タスクを実行するには、次の基本的なものだけが必要です。
crontabを編集するには、
crontab -e
または別のユーザーの場合は、
crontab -u ostechnix -e
これまでに crontab を実行したことがない場合は、初めて実行するときにエディターの選択を求められることがあります。
午後3時の仕事の場合は次の行を追加します
0 15 * * * <command-to-execute>
あなたの場合は
0 15 * * * sudo php artisan backup:run
保存してエディタを終了します。次にcrontabをチェックするには、
crontab -l
時間を変更する場合、cron のマニュアル ページのフィールドは次のようになります。
The time and date fields are:
field allowed values
----- --------------
minute 0-59
hour 0-23
day of month 1-31
month 1-12 (or names, see below)
day of week 0-7 (0 or 7 is Sunday, or use names)
A field may contain an asterisk (*), which always stands for
"first-last".
の詳細についてはcrontab
、Cronジョブの初心者向けガイド、または と入力しますman cron
。
この質問も参照してください。Cron ジョブを設定するにはどうすればよいですか?