一年くらい前に仕事で作ったシェルのメモ。
シェル内のコマンドはダミー。
要件
- 毎月指定の曜日に実行する
- 実行ログを吐かせる&実行前後のタイムスタンプも取る
実装
cronの記述
奇数月の二週目、午前3時に実行(cronでは曜日指定はしない)
crontab -e
0 3 8-14 1,3,5,7,9,11 * /work/hoge.sh
hoge.shの中身
当日が土曜日だったら、(開始時間→コマンド実行→終了時間→改行)の塊をログとして吐き出す
#!/bin/sh
#曜日判定処理
a=` date +%w`
if [ "$a" == "6" ]
then
#日付の表示とコマンドの実行
{
date
hoge
wait
date
echo
} >> /work/hoge,log
fi
※おまけ
実装したコードをVScodeのshellcheckにかけたところ、「書き方が古い!」という警告が出たので、少し修正したのが↓のスクリプト。
でも、お客さんにスクリプト修正の話するタイミングが中々ないので、サーバ上は変更してない。(動いてるからヨシ)
shellcheck済みのhoge.sh
#!/bin/sh
#曜日判定処理
a=$(date +%w)
if [ "$a" = "6" ]
then
#日付の表示とコマンドの実行
{
date
コマンドhoge
wait
date
echo
} >> /work/hoge.log
fi
shellcheckでエラーになったのは、3行目の`と4行目の==。
“は()、==は=でいいらしい?
今は
https://github.com/koalaman/shellcheck/wiki/SC2006
https://github.com/koalaman/shellcheck/wiki/SC3014