
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が起動したときにファイルを開くには、次の手順を実行します。
日付が一致するかどうかを確認するスクリプト(chkdate.sh)を作成します(例:5月2日)。
@reboot
仕様を使用してcron
実行chkdate.sh
[編集:re
chkdate.sh
、特定の日付の今日の日付を確認するスクリプト]:
あなたはbash
これを行うためのスクリプトです。date
の関数はbash
今日の日付を返します。これにより、特定の日付に対して今日の日付をテストし、必要な措置を講じるだけです。この問題を解決する1つの方法は次のとおりです。
注:私はDebianベースのLinuxディストリビューションを使用しているので、これはそれを反映しています。お使いのシステムは異なる場合があります。
- この機能を使用するには
date
:「ターミナルウィンドウ」を開くか、システムにコマンドプロンプトを表示します。コマンドプロンプト($
私の場合)に次のように入力しますdate +%Y-%m-%d
。
$ date +%Y-%m-%d
2019-05-02
$
date
必要なフォーマットを指定してください。date
出力はさまざまな形式で提供できます。上記の例では、形式は「年 - 月 - 日」です。月と日にのみ興味がある場合、コマンドは次のとおりですdate +%m-%d
。
$ date +%m-%d
05-02
$
- どの形式が必要な場合でも、システム文書の使い方を学ぶ必要があります。必要な形式で出力を指示する方法を理解するには、その
date
マニュアルを読んでください。
$ man date
...
q
$
単一文字でページがq
閉じます。man
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
これでファイルを保存し^o
てnano
エディタを終了します^x
。
- スクリプトを実行可能にするには、ファイル権限を設定する必要があります。その後、スクリプトを実行できます。
$ chmod 755 ~/chkdate.sh
$ ~/chkdate.sh
Today is the day!
$
今日が5月2日なので、ステートメントthen
の条件はif
実行(echo "Today is the day!"
)です。 1年中の別の日には、このelse
声明が施行されます。また、条件が必ずしも必要ではありませんelse
。必要でなければ無視しても構いません。
- このコマンドが実行されると仮定すると、スクリプトを変更して、
echo ...
そのコマンドを使用したいコマンドに置き換えることができます。