クローンジョブを作成し、リアルタイムで出力を確認します。

クローンジョブを作成し、リアルタイムで出力を確認します。

このフォーラムの質問と回答を読んだ後、質問のしきい値が非常に高いことを感じました。少なくとも私のようにLinuxについてほとんど知らない人にはそうです。クローンの仕事に関するほとんどの質問は、答えを含む私の能力を超えることです。だから少し恥ずかしい心で最も簡単な質問をしましょう。

毎分のデータ/時間を表示するcronジョブを作成したいと思います。コンソールでリアルタイムで見たいです。私はこれが最終的にbashスクリプトまたはPythonを介して実行されると思いますが、今はコマンドラインを使用したいと思います。

crontab -e
* * * * * /bin/date >> /home/pi/cron_date

星の概念を理解しました。 「日付」がどこにあるかを見つけるために「which」コマンドを使用します。この「日付」情報はまだ生成されていませんが、Enterキーを押すと、cron_dateというファイルが生成されるファイルにリダイレクトされます。

私は「nano」エディタを使用しています。 Control + OはWriteOutです(保存/別名で保存)。

File Name to Write: /tmp/crontab.D3AZm/crontab

質問1:Enterキーを使って、「nano」が好きなように呼び出すようにしました。私のcron_dateファイルはまだ/home/piの下に作成されます。私に与えられたファイル名「nano」は一時ファイルであることを知っています。しかし、このファイルを私のものにすることにしたので、「ナノ」の提案を削除して次に置き換える必要がありますか?

File Name to Write: /home/pi/cron_date

それとも、実際に考える必要がないことについて考えているのでしょうか?現在、私は何も置き換えずにこの一時ファイルの名前を「nano」と指定しています。

crontab: installing new crontab
crontab -l

私のファイルが存在します。今問題は、ファイルをリアルタイムで見ることです。以下で日付/時刻を確認できます。

nano cron_date
cat /home/pi/cron_date

ただし、情報を更新するには同じコマンドを使用する必要があります。私が持っているファイルの唯一のライブビューは次のとおりです。

tail -f /home/pi/cron_date

質問2:ファイル全体が更新されるのを見る方法はありますか?

これは私がしたい趣味プロジェクトの始まりです。ラズベリーパイを使って川底の写真を撮りましょう。趣味用ROVを作る予定です。カメラ付きのRaspberry Piが水に浸ったら、温度と時間を測定したいと思います。過熱すると、ファンを見てオンにすることができます。私は間違っているかもしれませんが、クローンの仕事の理解はプロジェクトの出発点です。

Raspberry Pi 1モデルB:Debianを使用してください。

答え1

このコマンドを実行すると、crontab -e一時ファイルを編集できます。エディタを終了すると、一時ファイルに構文エラーがあるかどうかを確認し、エラーがない場合は、ユーザーのcrontabを含むシステムディレクトリにインストールされます。ファイルを別の場所に保存すると、一時ファイルは変更されないため、古いcrontabはそのまま残ります。crontab -lcrontabの内容を確認するには、コマンドを実行してください。

各cronジョブはホームディレクトリで実行されます。これは、編集する一時ファイルの場所とまったく関係ありません。別のディレクトリでタスクを実行するには、次のコマンドを使用して起動しますcd

* * * * * cd ~/subdir && date >>somefile

これはホームディレクトリ(すでに存在する必要があります)のディレクトリに変更され、出力が記録さsubdirdateます/home/pi/subdir/somefilecdコマンドが失敗した場合(たとえば、ディレクトリが存在しないため)、dateコマンドは実行されません&&

dateデフォルトのコマンド検索パスにあるように、フルパスを作成する必要はありません。

「更新されるファイル全体を見る」とはどういう意味なのかわかりません。このコマンドは、tail -f実行時にファイルの最後の10行を表示し、永久に(またはユーザーが終了するまで)実行され、追加された行を表示します。新しく追加された行のみを表示するには(つまり、起動時に何も表示しないtail)、ゼロ行を出力するように指示します。

tail -n 0 -f /home/pi/cron_date

ファイル全体を表示してから追加された新しい行を印刷するには、tail行1から始めるように指示します。

tail -n +1 -f /home/pi/cron_date

関連情報