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