LINUX.ORG.RU
ФорумAdmin

Скрипт для бэкапа.

 bash. backup,


3

3

Решил озаботиться проблемой бэкапа рабочей машины. Написал такой вот скриптик:

#!/bin/bash

name=backup.tar.gz  
maindir=/  
backdir=/home/user/backup 
exclude=/home/user/backup/scripts/exclude
cd $backdir
tar -zcvf $name --exclude-from=$exclude $maindir

Файл exclude
/home/user/backup/backup.tar.gz
/proc 
/lost+found
/mnt  
/sys 
/home/user/.local/share/Trash
/home/user/.VirtualBox
/home/user/Downloads
/home/user/Загрузки

Конечно, можно запускать из консоли от рута, но, хочется мне гуевости, вывести ярлычёк на стол. В связи с этим вопрос. Что нужно поправить, чтобы он запускался от root (просил пароль при запуске)?

И заодно покритикуйте, может, ещё какие-либо директории убрать?

★★
Ответ на: комментарий от micro-chipset

Обязательно, завтра выложу, но, от совершенства он далёк.

nixit ★★
() автор топика
Ответ на: комментарий от micro-chipset
#!/bin/bash
#Необходимо установить pv

name=backup-`date +%F`.tar.bz2  
maindir=/  
backdir=/home/user/backup/backups 
exclude=/home/user/backup/scripts/exclude
log=/home/user/backup/log/backup.log

########################### Скриптец #################################################################
clear
echo "\033[37;41m[--------------------------------[Время начала: `date +%F--%H:%M`]--------------------------------]\033[0m"
echo "`date +%F--%H:%M` начат бэкап, имя файла: $name" >> $log
echo "\033[30;47m[+>-----]\033[0m[`date +%F--%H:%M`] \033[37mНачинаю операцию по спасению.\033[0m"
echo "\033[30;47m[++>----]\033[0m[`date +%F--%H:%M`] \033[37mПерехожу в директорию.\033[0m"
cd $backdir
echo "\033[30;47m[+++>---]\033[0m[`date +%F--%H:%M`] \033[37mВ данный момент куча маленьких обезьянок роются в папках.\033[0m"
echo "\033[30;47m[++++>--]\033[0m[`date +%F--%H:%M`] \033[37mТы же понимаешь, что обезьянкам нужно какое-то время...\033[0m \033[35m"
#Можно использовать параметр -v, чтобы выводить список файлов. Удобно для отладки.
tar -jcf - $maindir --exclude-from=$exclude | pv -ptrb > $name
#tar -jcf $name --exclude-from=$exclude $maindir
echo "\033[30;47m[+++++>-]\033[0m[`date +%F--%H:%M`] \033[37mОбраз системы [$name] - готов.\033[0m"
echo "\033[30;47m[++++++>]\033[0m[`date +%F--%H:%M`] \033[37mКому-то придется потесниться, ибо папка с бэкапами занимает уже `du -sh . | cut -f1`\033[0m"
echo "\033[30;47m[+++++++]\033[0m[`date +%F--%H:%M`] \033[37mВот и всё, блеать!\033[0m"
echo "\033[37;41m[--------------------------------[Время окончания:`date +%F--%H:%M`]--------------------------------]\033[0m"
echo "`date +%F--%H:%M` бэкап завершен" >> $log
########################### Скриптец #################################################################

#Hepl:
#name - название архива
#maindir - дирректория, которую бэкапим (корень)
#backdir - Здесь будет архив
#exclude - файл с исключениями
#log - папка для логирования

Вот, как-то так, есть ещё скрипт, для архивации папки с конфигами, там показывается время:

#!/bin/bash
name=backup-work.`date +%F`.txz
mindir=/home/user/backup/backups/works
bafile=/home/user/WORK
log=/home/user/backup/log/backup.log


clear
echo "\033[37;41m[--------------------------------[Время начала: `date +%F--%H:%M`]--------------------------------]\033[0m"
echo "`date +%F--%H:%M` начат бэкап рабочей папки, имя файла: backup-work.`date +%F`.txz" >> $log
echo "\033[30;47m[+>-----]\033[0m[`date +%F--%H:%M`] \033[37mНачинаю операцию по спасению.\033[0m"
echo "\033[30;47m[++>----]\033[0m[`date +%F--%H:%M`] \033[37mПерехожу в директорию.\033[0m"
cd $mindir
echo "\033[30;47m[+++>---]\033[0m[`date +%F--%H:%M`] \033[37mВ данный момент куча маленьких обезьянок роются в папках.\033[0m"
echo "\033[30;47m[++++>--]\033[0m[`date +%F--%H:%M`] \033[37mОбезьянки сохраняют WORK.\033[0m \033[35m"
tar c $bafile | pv -s $(du -sb $bafile | grep -o '[0-9]*') | xz -9c > $name
echo "\033[30;47m[+++++>-]\033[0m[`date +%F--%H:%M`] \033[37mОбезьянки очень устали.\033[0m"
echo "\033[30;47m[++++++>]\033[0m[`date +%F--%H:%M`] \033[37mКому-то придется потесниться, ибо папка с бэкапами работы занимает уже `du -sh . | cut -f1`\033[0m"
echo "\033[30;47m[+++++++]\033[0m[`date +%F--%H:%M`] \033[37mВот и всё, блеать!\033[0m"
echo "\033[37;41m[--------------------------------[Время окончания:`date +%F--%H:%M`]--------------------------------]\033[0m"
echo "`date +%F--%H:%M` бэкап рабочей папки завершен" >> $log
Авось, кому и сгодится сеё поделие.

nixit ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.