path
# Currentディレクトリ内のファイルを一覧表示
~/Downloads$ ls
Dump20240227.sql Dump20240227_1.sql.zip
Dump20240227.sql.zip Dump20240227_2.sql
# 特定のファイルのフルパス取得
~/Downloads$ realpath Dump20240227_2.sql
/Users/n.{user}/Downloads/Dump20240227_2.sql
zip
~/Documents/mystady/simple-codes/DEV-746/速度調査プログラム$ ls
experiment_log_1709605333885_山口さんのSQLと比較.txt 実行計画_1.txt
experiment_log_1709615324311.md 実行計画_2.txt
experiment_log_1709615324311.txt 検索速度検証.md
index.js
~/Documents/mystady/simple-codes/DEV-746/速度調査プログラム$ zip 検索速度検証_実行計画.zip 実行計画_1.txt 実行計画_2.txt 検索速度検証.md
adding: 実行計画_1.txt (deflated 92%)
adding: 実行計画_2.txt (deflated 93%)
adding: 検索速度検証.md (deflated 77%)
Cronを使用した定期処理のセットアップ
このガイドでは、macOSでCronを使用してスクリプトarchive_and_delete.sh
を定期的に実行する方法
1. バッチ処理スクリプトの作成
まず、以下の内容を持つarchive_and_delete.sh
スクリプトを作成します。
スクリプト
```bash #!/bin/bash # 現在の日時を YYYYMMDD-HHMMSS 形式で取得し、変数に代入 current_datetime=$(date "+%Y%m%d-%H%M%S") # ログディレクトリのパスを変数に代入 # ここではユーザー名を明示的に指定する必要がある(または環境変数から読み込む) log_directory="/Users/{userName}/Documents/mystady/simple-codes/DEV-746/unit-test-log/" # ログファイルのパスを変数に代入 log_file="${log_directory}${current_datetime}_script_log.txt" # ログディレクトリ内の特定のパターンにマッチし、1分前以上に作成されたファイルを検索 # 対象ファイルをZIPに圧縮し、その後削除する find "$log_directory" -name 'dev-746_searched_urls_log@*.txt' -type f -mmin +1 -print0 | while IFS= read -r -d $'\0' file; do echo "Processing: $file" >> "$log_file" archive_path="${log_directory}${current_datetime}_archive.zip" if zip "$archive_path" "$file" >> "$log_file" 2>&1; then echo "Archived: $file" >> "$log_file" rm "$file" && echo "Deleted: $file" >> "$log_file" else echo "Failed to archive: $file" >> "$log_file" fi done ```
スクリプトを作成したら、実行可能にするために次のコマンドを実行してください。
chmod +x /Users/{userName}/Documents/mystady/simple-codes/DEV-746/unit-test-log/archive_and_delete.sh
2. Cronの設定とアクセス権限
2.1 参考サイト
以下のサイトが参考になります: 【crontab】mac-bookで処理を定期実行する方法【超簡単】
3. Cron Jobの登録
crontab -e
コマンドを使用してCron Jobを登録します。以下の手順に従ってください。
- Terminalを開いて
crontab -e
を実行します。 i
キーを押して挿入モードに入ります。- 適切な行に以下を追加します。
# これは、3分ごとにスクリプトを実行するようにCronに指示します。
*/3 * * * * /Users/{userName}/Documents/mystady/simple-codes/DEV-746/unit-test-log/archive_and_delete.sh
4. 登録されたCron Jobの確認
crontab -l
コマンドを使用して、登録されたジョブが正しく設定されているか確認します。
5. Cron Jobのログ確認
Cron Jobが正しく実行されているかを確認するには、以下のコマンドを使用してログを確認します。
log show --predicate 'process == "cron"' --info --debug
timezone
# 設定できるTimeZone一覧
$ sudo systemsetup -listtimezones
# timezone設定
$ sudo systemsetup -settimezone "Asia/Tokyo"
# 確認
$ date