システムドとcrontabを利用してLinuxシステムで時間割タスクのログ記録を設定する方法

Linuxシステム上で定期的なタスクログ記録を実現するには、Systemd と Crontab の併用が可能です。具体的手順を以下に示します。

  1. mytask.sh
#!/bin/bash
date >> /path/to/logfile.log
/my/task/command >> /path/to/logfile.log

この例では、スクリプトは現在の日時をログファイルに書き込み、あなたのタスクコマンドを実行し、結果をログファイルに書き込みます。

  1. Crontabを使用して定期実行するジョブを設定するには、ターミナルを起動し、以下のコマンドを実行して現在のユーザーのCrontabファイルを編集します:
crontab -e

Crontab ファイルに、タスクの実行日時と実行するスクリプトを指定した行を追加する(例:

0 0 * * * /path/to/mytask.sh

この例のタスクは毎日午前0時に実行されます。

  1. Crontabファイルを保存して閉じます。
  2. 時限タスクのログ記録を行うsystemdサービスを作成します.logtask.serviceというファイルを作成し、次のように入力します:
[Unit]
Description=Log Task
[Service]
Type=oneshot
ExecStart=/path/to/mytask.sh
[Install]
WantedBy=multi-user.target

この例ではサービスのタイプは、一回だけ実行されることを示す `oneshot` に設定されています。`ExecStart` は実行されるスクリプトを指定しています。

  1. ファイルをシステムサービスのディレクトリ(例: /etc/systemd/system/)に置きます。
  2. Systemdサービスの設定をリロードするには以下のコマンドを実行する。
sudo systemctl daemon-reload
  1. そのサービスを開始してアクティブにします:
sudo systemctl start logtask.service
sudo systemctl enable logtask.service

現在は決められた時間に定常ジョブが実行され、その結果はログファイルに記録されます。ログファイルを確認することで、ジョブの実行状態を確認することができます。

bannerAds