fat0troll 13.05.2012 21:45

Скрипты на bashDropbox Autobackuper — автосохранение конфигов

Маленький и грязный баш-скрипт с конфигом и rc-скриптом для Arch Linux, позволяющий сохранять конфигурационные файлы (да и вообще что-нибудь) автоматически время от времени.


https://github.com/fat0troll/dropbk
Install:

Арчлинуксерам:
1
2
3
4
git clone git@github.com:fat0troll/dropbk.git
cd dropbk
chmod +x install-arch.sh
sudo ./install-arch.sh



Остальные:

1
2
3
4
git clone git@github.com:fat0troll/dropbk.git
cd dropbk
chmod +x install.sh
sudo ./install.sh


Usage:

Всем:

В /etc появляется конфиг dropbk.conf.example, переименовываем в /etc/dropbk.conf. В нём есть переменные: USER (имя пользователя, чьи конфиги мы будем бекапить), DROPBOX (папка внутри хомяка пользователя. где будут лежать бекапы, захватываемые дропбоксом), FILE (файл с кастомным списком бекапящегося), OUTPUT (формат имени архива с бекапом).

Подставляем своё имя пользователя, имя папки дропбоксинки, при желании меняем формат имени архива (по дефолту имя файла на выходе — backup-[юникс-таймштамп].tar.xz). Запускаем dropbk.

Оно затарило все конфиги, включая ненужные? Не вопрос. Правим путь в FILE, и создаём по этому пути текстовый файл, с содержимым вида:

1
2
3
4
5
6
.flush/
.gitconfig
.lastpass/
.local/share/gajim/
.mozilla/
.Skype/



Пути отсчитываются от ~ юзера, который задан в конфиге. Одна строка — один путь. Каталог, файл — неважно, главное, чтобы tar схавал.

Запускаете dropbk, получаете нужный архив в нужном месте. Синхронизация с сервером — на совести dropbox-клиента.

Арчюзерам:

Можно включить автоматический бекап при каждом включении компьютера. Просто в /etc/rc.conf добавьте в DAEMONS — @dropbk. Именно так, с собачкой, иначе будете очень долго ждать загрузки ;-).

Скрипт сваян на коленке за пять минут. Fixes are welcome. Если хочется слегка поднять автору настроение — тыц. Have a nice day ;)


Тэги: arch Dropbox
+ -2 -
Похожие Поделиться

philosoft 13.05.2012 22:20 #
Рефер-ссылки - не хорошо.
install* скрипты та ещё радость, нет анинстала, нет пкгбилда и т.д.
Скрипт действительно 5ти-минутный-наколеночный и не стоит выкладывания в паблик, а уж кидать его не в ~/bin вообще моветон.
wilful 13.05.2012 22:47 #
Зачем такое выкладывать? Может кто и поставит не глядя...

"Fixes are welcome." - посмотрите тут, много интересного найдете. http://rus-linux.net/MyLDP/BOOKS/abs-guide/flat/abs-book.html

На баш можно и нормально писать...
Из моего можете глянуть парсер конфига тут и еще кучу всего:
https://github.com/wilful/root-shell/blob/master/lib/functions.lib
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
InitRC () {
local FileConf="${_workdir}/etc/rc.conf" line=0 sep='=' OLD_IFS="${IFS}"
if [[ ! -e ${FileConf} ]]; then
printf "${C_CYAN} --> Debug:\t${C_ERROR}First you need to create a configuration file. See an example of a file etc/rc.conf.example. File ${FileConf} not exist${C_STD}\n" $0
exit 1
fi
IFS=${sep}
while read var val; do
line=$((++line))
local var=$(echo ${var} | sed -e 's/^[[:space:]]*//g;s/[[:space:]]*$//g')
local val=$(echo ${val} | sed -e 's/^[[:space:]]*//g;s/[[:space:]]*$//g')
[[ ! -z ${val} ]] &&
eval "${var^^}=${val}" &>/dev/null ||
CheckError 4 "Error in line ${line} file \'rc.conf\': ${C_CYAN}${var}${sep}${val}"
done < <(sed -e '/^$/d' -e '/*/d' -e '/^#/d' ${FileConf})
IFS="${OLD_IFS}"
CheckError 1 "Syntax OK"
}

muhas 14.05.2012 09:45 #
пкгбилды отменили?
aurdino 14.05.2012 11:22 #
etckeeper отменили?
Против велосипедов не имею ничего против, но хотя-бы написали, что с помощью etckeeper нельзя сделать git archive, и для этого есть такой скрипт.

p.s. попробуйте etckeeper и документацию к нему обязательно.