Когда я завершаю работу над каким-то сайтом, на сегодня или вообще, я запускаю простой скрипт, который делает коммит на сервер гита и создает два файла (базу данных и архив сайта).
Хочу немного расширить функционал скрипта, но не знаю, с какой стороны подойти.
То, что есть сейчас, для коммита на гит и архивирования:
#!/bin/bash
# делаем бэкап базы данных в папку проекта
sudo mysqldump -u`head -1 mysql.txt | tail -1` -p`head -2 mysql.txt | tail -1` `head -1 mysql.txt | tail -1` > `head -1 mysql.txt | tail -1`.sql
# декодируем базу в нормальную кодировку
sudo grep -rl utf8mb4 `head -1 mysql.txt | tail -1`.sql | xargs perl -p -i -e 's/utf8mb4/utf8/g'
# меняем права и владельца на конечный файл
sudo chown sergey:sergey -R `head -1 mysql.txt | tail -1`.sql
sudo chmod -R 644 `head -1 mysql.txt | tail -1`.sql
# добавляем изменения в git
git add --ignore-removal .
git commit -a -m "$(date +"%Y-%m-%d %H:%M")"
git push origin master
# записываем файлы из директории в архив
tar -cvpzf archive.tar.gz --exclude='node_modules' --exclude='.git' --exclude='archive.sh' --exclude='gitcommit.sh' --exclude='gulpfile.js' --exclude='mysql.txt' --exclude='package.json' --exclude='.gitignore' --exclude='*.sql' --exclude='*.tar.gz' * .htaccess
1. Нужно дописывать в название архива дату и время создания файла, в идеале, если будет так: ГГГГ-ММ-ДД_ЧЧ-ММ-СС
2. Нужно скидывать архив через SSH на сервер
(при этом не хочется каждый раз вводить пароль), всегда в определенную папку будет отправляться
/mnt/backupftp/$sitename - название $sitename динамичное, оно подставляется в зависимости от команды:
sitestop sitename, которой собственно и запускается скрипт.
3. При этом не хочется из папки архивов делать помойку, нужно чтобы в папке каждого сайта хранилось не более 3 резервных копий, то есть старые файлы нужно как-то затирать, если записывается уже 4-й архив.
Да, я паранойик, мне мало копий на гите, хочу иметь еще обычные архивные копии.
Дату и время вроде не сложно написать, вот с отправкой на сервер без пароля и с затиранием файлов у меня совсем беда)
Куда тут копать можно?)