web-dev-qa-db-ja.com

現在の日付と時刻を取得して、Gitにメッセージをコミットします

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
2
RUC...

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は使用できます。

2
dessert