На этот вопрос уже есть ответ здесь:
Я пишу сценарий оболочки для автоматической загрузки резервных копий в git с помощью crontab. Как я могу получить текущую дату и время в сообщении фиксации. Это мой сценарий:
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
Вы можете использовать Подстановка команд , чтобы получить текущую дату и время запуска вашего скрипта:
git commit -m "$(date +"%D %T")"
В качестве альтернативы вы можете сохранить выходные данные date
в переменной, например если вы хотите зафиксировать время, когда скрипт был запущен в , добавьте в качестве первой команды, например
timestamp=$(date +"%D %T")
и используйте его позже как:
git commit -m "$timestamp: Backup"
Если это действительно весь сценарий, не забудьте добавить Шебанг в качестве первой строки. Я всегда стараюсь избегать 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
.