Crontabを使用して特定の日にLinuxを起動したときにのみファイルを開く方法は?

Crontabを使用して特定の日にLinuxを起動したときにのみファイルを開く方法は?
matthew@matthew-pc:~$ crontab -l 
[...]
@reboot 1 5 * sleep 10s && export DISPLAY=:0 && xdg-open ~/@/Testing.jpg

5月1日、Linuxを起動したときに「Testing.jpg」が開かれませんでした。
Linuxが特定の日付(5月2日など)に起動したときにCrontabを使用してファイルを開くにはどうすればよいですか?

ベストアンサー1

@reboot- とスケジュールを混在させることはできません。cronこれはサポートされていません。

特定の日にLinuxが起動したときにファイルを開くには、次の手順を実行します。

  1. 日付が一致するかどうかを確認するスクリプト(chkdate.sh)を作成します(例:5月2日)。

  2. @reboot仕様を使用してcron実行chkdate.sh

[編集:re chkdate.sh、特定の日付の今日の日付を確認するスクリプト]:

あなたはbashこれを行うためのスクリプトです。dateの関数はbash今日の日付を返します。これにより、特定の日付に対して今日の日付をテストし、必要な措置を講じるだけです。この問題を解決する1つの方法は次のとおりです。

注:私はDebianベースのLinuxディストリビューションを使用しているので、これはそれを反映しています。お使いのシステムは異なる場合があります。

  1. この機能を使用するにはdate:「ターミナルウィンドウ」を開くか、システムにコマンドプロンプトを表示します。コマンドプロンプト($私の場合)に次のように入力しますdate +%Y-%m-%d
$ date +%Y-%m-%d
2019-05-02
$
  1. date必要なフォーマットを指定してください。date出力はさまざまな形式で提供できます。上記の例では、形式は「年 - 月 - 日」です。月と日にのみ興味がある場合、コマンドは次のとおりですdate +%m-%d
$ date +%m-%d
05-02
$
  1. どの形式が必要な場合でも、システム文書の使い方を学ぶ必要があります。必要な形式で出力を指示する方法を理解するには、そのdateマニュアルを読んでください。
$ man date
...
q
$

単一文字でページがq閉じます。man

  1. date出力形式を決定したら、スクリプトの作成を開始できますchkdate.sh。このファイルを作成し、使いやすいテキストエディタで開きましょう。
$ nano ~/chkdate.sh
...

たとえば、次のようにスクリプトの入力を開始できます。

#!/bin/bash
SOMEDAY="05-02"
TODAY=`date +%m-%d`
if [ $TODAY == $SOMEDAY ]
then 
   echo "Today is the day!"
else
   echo "Today is NOT the day."
fi

これでファイルを保存し^onanoエディタを終了します^x

  1. スクリプトを実行可能にするには、ファイル権限を設定する必要があります。その後、スクリプトを実行できます。
$ chmod 755 ~/chkdate.sh
$ ~/chkdate.sh 
Today is the day!
$ 

今日が5月2日なので、ステートメントthenの条件はif実行(echo "Today is the day!")です。 1年中の別の日には、このelse声明が施行されます。また、条件が必ずしも必要ではありませんelse。必要でなければ無視しても構いません。

  1. このコマンドが実行されると仮定すると、スクリプトを変更して、echo ...そのコマンドを使用したいコマンドに置き換えることができます。

おすすめ記事