Костылескрипт для бэкапа конфигов

Nov 13, 2020 21:02


С этой вашей дурацкой работой уже давно никого и ничего не еbashил. Ручки стали забывать как это делается. Сегодня вот решил наверстать упущенное и написать небольшой скриптик для сохранения особо ценных конфигов.

Раньше я делал сильно проще. Брал, и делал "svn checkout" прямо в папку "/etc". Но во-первых, нонче повально все перешли на энтот бусурманский GIT. Во-вторых, не везде разрешают отключать SELinux, а с оным "svn update" делать всё равно не получается.

С GIT-ом же засада заключается в том, что там сущность "проект" нельзя раскидать по нескольким разным папкам. Можно, конечно, делать разные branch-и, но это "не то". Поэтому я решил заколхозить скриптик, который будет сначала собирать все особо ценные конфиги в одну некую заранее заданную папочку, а потом безжалостно commit-ить их оттудова и push-ить. Вот что получилось.
#!/bin/bash

SOURCE="/etc/haproxy /etc/nginx /etc/dehydrated"
EXCLUDE="account_key.pem privkey*"
MESSAGE="Regular configs backup"

[ "$(/bin/id -u)" -eq 0 ] && {
echo "Please run this script as $(/bin/logname)"
exit 1
}

COLLECTOR="/opt/git/configs"
RSYNC="/bin/rsync"
GIT="/bin/git"

EXCLUDECMD="--exclude='"$(echo "$EXCLUDE" | /bin/sed -e "s/\([^\\]\) /\1' --exclude='/g")"' --exclude='*.md'" #'
eval /bin/sudo $RSYNC -aR --cvs-exclude --delete --inplace $EXCLUDECMD $SOURCE $COLLECTOR

/bin/sudo /bin/chown -R $(/bin/logname) "$COLLECTOR"

cd "$COLLECTOR"

$GIT add -A
$GIT commit -am "$MESSAGE"
$GIT push -u origin master

Собственно, заряжайте ваши говномёты. Я жы ж знаю, что тут обязательно моё творчество раскритикуют. Начиная от того, что использовать eval небезопасно, заканчивая тем, что "нафиг тебе это вообще надо".

А как вы бэкапите ваши конфиги и историю их изменения?

Ну и попутно второй вопрос. Допустим, у вас есть N веб-серверов, которые по сценарию используют один и тот wildcard-сертификат от Lets Encrypt. Как вы его синхронизируете / разливаете по всем заинтересованным фронтендам после перегенерации? Тупо хуком для certbot / dehydrated по SSH / SCP / SFTP или применяете какие-нибудь более хитрозадые технологии?

Во, ещё вспомнил. Какой ACME-клиент нонче наиболее стильный, модный, молодежный? Я по инерции пользую dehydrated, но может уже что-нибудь более клёвое появилось?

P.S. Знакомые в Нахабино ищут тракториста на постоянную работу. Зряплата 35 килорублей на руки. Кто-нибудь желает?

администрирование, scripting, linux, вопрос, bash

Previous post Next post
Up