システムドとcrontabを利用してLinuxシステムで時間割タスクのログ記録を設定する方法
Linuxシステム上で定期的なタスクログ記録を実現するには、Systemd と Crontab の併用が可能です。具体的手順を以下に示します。
- mytask.sh
#!/bin/bash
date >> /path/to/logfile.log
/my/task/command >> /path/to/logfile.log
この例では、スクリプトは現在の日時をログファイルに書き込み、あなたのタスクコマンドを実行し、結果をログファイルに書き込みます。
- Crontabを使用して定期実行するジョブを設定するには、ターミナルを起動し、以下のコマンドを実行して現在のユーザーのCrontabファイルを編集します:
crontab -e
Crontab ファイルに、タスクの実行日時と実行するスクリプトを指定した行を追加する(例:
0 0 * * * /path/to/mytask.sh
この例のタスクは毎日午前0時に実行されます。
- Crontabファイルを保存して閉じます。
- 時限タスクのログ記録を行うsystemdサービスを作成します.logtask.serviceというファイルを作成し、次のように入力します:
[Unit]
Description=Log Task
[Service]
Type=oneshot
ExecStart=/path/to/mytask.sh
[Install]
WantedBy=multi-user.target
この例ではサービスのタイプは、一回だけ実行されることを示す `oneshot` に設定されています。`ExecStart` は実行されるスクリプトを指定しています。
- ファイルをシステムサービスのディレクトリ(例: /etc/systemd/system/)に置きます。
- Systemdサービスの設定をリロードするには以下のコマンドを実行する。
sudo systemctl daemon-reload
- そのサービスを開始してアクティブにします:
sudo systemctl start logtask.service
sudo systemctl enable logtask.service
現在は決められた時間に定常ジョブが実行され、その結果はログファイルに記録されます。ログファイルを確認することで、ジョブの実行状態を確認することができます。