以下、crontabにて動作させたいと思っているシェルスクリプトです。
test.sh
1DATESTR=`date +%Y%m%d-%H%M%S` 2 3cd /data/code 4COMMIT_ID=`git log -1 | grep -oE '[0-9a-f]{40}'` 5 6echo ${DATESTR}'_'${COMMIT_ID} >> test.txt
/data/codeの中は、gitのローカルリポジトリとなっており、ここでgitの最終commitのIDを獲得しようというのが、上記4行目のコマンドです。
これは、/data/code以下のディレクトリでないと行えません。
これを、
sh test.sh
で行うと、test.txtの中には
20201126-194504_cd898294d4b321f725f5843ed3f7f0098d13e29f
と日付とcommit IDが残ります。しかしながら、これをcrontabから行うと、
20201209-145701_
となってしまいます。
なぜ、shコマンドで行うのと、crontabで行うのと結果が異なるのか、ご存知の方はいらっしゃいますでしょうか?
よろしくおねがいします。
回答4件
あなたの回答
tips
プレビュー