Crontabを使用してバックアップをgitに自動プッシュするシェルスクリプトを作成しています。現在の日付と時刻をコミットメッセージに取得するにはどうすればよいですか。これは私のスクリプトです:
cd /var/www/html/myweb
php bin/magento setup:backup --code --media --db
cp /var/www/html/myweb/var/backups/* /home/myweb/backups/myweb/backups/
cd /home/myweb/backups/myweb
git add .
git commit -m "date +"%D %T""
git Push
Command Substitution を使用して、スクリプトの実行時に現在の日付と時刻を取得できます。
git commit -m "$(date +"%D %T")"
または、date
の出力を変数に保存することもできます。スクリプトがstartedであった時間をキャプチャしたい場合、最初のコマンドとして追加します。
timestamp=$(date +"%D %T")
後で使用します:
git commit -m "$timestamp: Backup"
これが実際にスクリプト全体である場合、最初の行として Shebang を追加することを忘れないでください。私は常にスクリプトでcd
を避け、フルパスを与えようとします。最後に、変数に長いパスを格納する場合、コードをクリーンでわかりやすく保つのに役立ちます:
#!/bin/bash
path1=/var/www/html/myweb
path2=/home/myweb/backups/myweb
php "$path1/bin/magento" setup:backup --code --media --db
cp "$path1/var/backups/*" "$path2/backups/"
git add "$path2"
git commit -m "$(date +"%D %T")"
git Push
そのようにすると、パスで~
を使用できないことに注意してください。変数がチルダの後に展開されるため、ただし$HOME
は使用できます。