crontab

https://blog.sanctum.geek.nz/cron-best-practices/

複数のコマンドを実行、ログ出力

SHELLをbashにする。丸括弧で囲んでまとめて出力先を指定する。

SHELL=/usr/local/bin/bash
0 12 * * * *  ( cd /var/scripts/my_command1 ; /var/scripts/my_command2 ) 1>> /tmp/my_log 2>&1

cron/crontab で 複数行の実行には波括弧 {} を使う - それマグで! 2016

複数のコマンドの出力をまとめてリダイレクトする2つの方法 - 水底 2017

変数

変数が実は使えます

MAILTO=""
BATCH_DIR="/path/to/batch"

0 5 * * * /bin/bash ${BATCH_DIR}/hoge.sh

イケてるcrontabのいじり方 - Qiita 2016

cron実行中の環境変数

# crontab -e
*/1 * * * * printenv > /tmp/printenv.txt
# cat /tmp/printenv.txt
SHELL=/bin/sh
USER=root
PATH=/usr/bin:/bin
PWD=/root
LANG=ja_JP.UTF-8
SHLVL=1
HOME=/root
LOGNAME=root

cron実行時のPATHがどこで決められるのか調査した - ごらくらいふ 2016