たとえば、今から8時間後にコマンドを実行する簡単な方法は何ですか?私はこのように考えることができます:
Nohup bash -c "sleep 28800 ; ./mycommand.sh" &
もっと適切な方法はありますか?
at
コマンドを使用できます。 at
は、後でコマンドを実行します。 at
ユーティリティは、標準入力からコマンドを読み取り、それらをat-jobとしてグループ化し、後で実行するものとします。
通常、at
はデフォルトでUbuntuにインストールされますが、リリースに含まれていない場合は、次の方法でインストールします。
Sudo apt-get install at
詳細、オプション、例などについては、 buntu Manpage Repository を参照してください
例:
at now +8 hours -f ~/myscript.sh
tomorrow
やnoon
などの便利な略記法も使用できます。
echo "Tweet fore" | at teatime
警告:これはパイプの左側でコマンドを実行します即時が、その出力のみを後で表示します。この例は、アクションをat
にパイプする方法も示しています。 at -c
は、スケジュールされたアクションを調べることができる方法です。次のように、それらを番号で簡単にリストできます。
at -c 3
はい、cronジョブを設定できます。
たとえば、現在の時刻が14:39:00で今日が8月30日の金曜日である場合、crontab -e
コマンドを使用して、crontabファイルに次のcronジョブ(8時間後に実行される)を追加できます。
39 22 30 8 5 /path/to/mycommand.sh
詳細:
cron
、at
などにGnomeベースのGUIを使用します。
CronHowto の導入は、gnome-schedule
guiの使用を提案します。これは、端末にすべてのゴミを入力するよりもはるかに優れています(特に、「パワー」ではない「平均的な」Ubuntuユーザー* nix/bsdユーザー。)
Unity Dash(または他のアプリケーションメニュー)を使用して実行し、Scheduled Tasksを探すか、gnome-schedule
を実行します。
GnomeベースのUbuntuシステムでは、アプリケーションのGnomeスケジュールタスクツール(gnome-scheduleパッケージから)-> System Toolsは、Cronの使用を促すグラフィカルインターフェイスを提供します。プロジェクトのウェブサイトは http://gnome-schedule.sourceforge.net/ にあります。ソフトウェアは、ソフトウェアセンターから、または次のように入力してインストールできます。
Sudo apt-get install gnome-schedule
ターミナルで。
gnome-schedule
を使用すると、ホームディレクトリのスクリプトに対して、このタイプのウィンドウを使用して新しい「at」コマンドが設定されます。
at
が問題であることが判明する前に、これを行うための迅速で汚い方法を見つけました。
スクリプトを正午に実行するとします。
until [[ "$(date)" =~ "12:00:" ]]; do
sleep 10
done
./mycommand.sh
明日正午に実行したいとします(今日は11月24日です):
until [[ "$(date)" =~ "25 12:00:" ]]; do
sleep 30
done
./mycommand.sh
更新:やや良い方法:date +FORMAT
を使用して、気になる数値のみをテストします。
until [[ $(date +%H:%M) == 21:06 ]]; do
...