Главная Файлы Форум Галерея Гостевая книга Обратная связь Карта сайта Поиск
 

 

Моё место работы

СитиСервис
  • Заправка и ремонт лазерных картриджей
  • Ремонт любых принтеров и копиров
  • Оригинальные и совместимые картриджи
  • Доставка бесплатно (от 2-х картриджей)
  • Накопительная система расчётов для корпоративных клиентов
Телефон
+7 (4722) 373-983
8-980-326-01-23
Адрес E-mail
mybelpost@gmail.com

Привет, Гость

Войти
Идентификация
Я забыл свой пароль
Регистрация

Разделы -> Статьи -> Linux - разное -> Резервная копия поль...

Резервная копия пользовательского каталога и его восстановление

Статья обновлена 28 мая 2012г. (некритичные изменения).
Скрипт обновлен 06 марта 2012 г.

В скрипт user-backup добавлена возможность автоматического удаления старого бекапа указанного пользователя.
Два скрипта для школы восстанавливающие пользовательские настройки

Первый делает копию домашнего каталога пользователя сохраняя всё в архиве.

Второй скрипт при старте распаковывает сохранённый архив заменяя имеющийся пользовательский каталог.

И так, скрипт первый.

Открываем терминал с правами root. Создаём файл - команду см. ниже

touch /usr/bin/user-backup

Открываем созданный файл на редактирование:

mcedit /usr/bin/user-backup

Копируем листинг скрипта (см. ниже "Листинг 1") от #!/bin/bash до exit 0; и вставляем в открытый файл. Сохраняем изменения и закрываем mcedit.

Даём права на выполнение созданному скрипту:

chmod 755 /usr/bin/user-backup

Всё! С одним сценарием покончили. Переходим ко второму.

Создаём файл user-unback

для ALT-Linux:

touch /etc/rc.d/init.d/user-unback

для Debian:

touch /etc/init.d/user-unback

Открываем его на редактирование

в ALT-Linux:

mcedit /etc/rc.d/init.d/user-unback

в Debian:

mcedit /etc/init.d/user-unback

копируем листинг 2 и вставляем в открытый файл.

Сохраняем изменения и закрываем mcedit.

Даём права на выполнение файлу

в ALT-Linux:

chmod 755 /etc/rc.d/init.d/user-unback

в Debian:

chmod 755 /etc/init.d/user-unback


Включаем скрипт в автозагрузку

команды для ALT-Linux:

chkconfig --add user-unback

chkconfig user-unback on

(Для выключения скрипта из автостарта даём команду chkconfig user-unback off )

команда включения для Debian:

update-rc.d user-unback defaults

команда отключения для Debian:

update-rc.d -f user-unback

Использование:

После полной настройки учётной записи пользователя необходимо запустить терминал с правами root и дать команду:

/usr/bin/user-backup sidorov

Где sidorov - каталог пользователя подлежащий резервированию. (Не полный путь, а только имя самого каталога)

Если пользователей несколько и у каждого была сделана резервная копия данной командой, то при старте системы будут восстанавливаться каталоги всех забекапированных пользователей.

Всё! Проверил сегодня под ALT-Linux-5.0.2 Мастер, под Debian-6 Squeeze - всё работает.

Предупреждение!!!

Каталог пользователя, который был забекапирован удаляется полностью без возможности восстановления и заменяется резервной копией. Домашние каталоги пользователей, которым бекап не производился остаются не тронутыми.

Вторичное бекапирование

Делаем все необходимые настройки у пользователя

Запускаем терминал, получаем права root.

Запускаем скрипт резервирования:

# /usr/bin/user-backup

Старый архив с копией каталога пользователя будет безвозвратно удалён.
Новый архив с бекапом будет размещён на месте старого.

Всё!

Листинг скрипта user-backup (последнее изменение - 06 марта 2012г.):


#!/bin/bash
# Скрипт создаёт резервную копию всех файлов и каталогов пользователя заданного как аргумент в командной строке
# к примеру: user-backup sidorov
# Будет сохранён каталог /home/sidorov
#
# Данный скрипт необходимо разместить в каталоге /usr/bin
# Дать права на выполнение chmod 755 /usr/bin/user-backup
#
# Использование: после проведения настроек у пользователя открываем терминал получаем права root
# Запускаем скрипт на выполнение задав каталог пользователя как аргумент: /usr/bin/user-backup sidorov

IFS=$'\t\n'; # Меняем разделитель на случай если имена файлов и каталогов с пробелами

# Проверяем наличие аргумента и каталога с указанным именем пользователя
if [ -n "$1" ] && [ -d "/home/$1" ];
then
# Если каталог есть, то скрипт продолжает работу

# Проверяем наличие каталога для хранения резервной копии и самой резервной копии
	if [ ! -d /root/user-backup ] ; # Проверка наличия каталога - важно при первом запуске скрипта
	then
	echo "Каталог /root/user-backup отсутствует";
	  mkdir /root/user-backup ; # И если его нет, то создаём у root-а, чтобы не достали...
	echo "Создан каталог /root/user-backup";
	elif [ -f /root/user-backup/$1.tar ] ; # Если каталог есть, то проверяем наличие старого архива
		then
			echo "Удаляею старую резервную копию пользователя $1";
			rm -f /root/user-backup/$1.tar; # Если архив имеется, то удаляем его
	fi

	cd /home;
	echo "Создаю новую копию каталога пользователя $1";
	tar cpf /root/user-backup/$1.tar ./$1; # сохраняем каталог пользователя в архив
	echo "Готово!";
else echo ;
	echo "Каталог пользователя не указан или указан не верно!";
	echo "Запустите скрипт ещё раз с указанием имеющегося каталога пользователя.";
	echo ;
	echo "К примеру: /usr/bin/user-backup sidorov";
	echo "Ниже приведён список существующих каталогов из каталога /home";
	echo ;
	ls -1 /home;
	echo ;
fi

exit 0;


Листинг скрипта user-unback:


#!/bin/bash
# user-unback Unbackup user dir.
# chkconfig: 5 44 05
# description: unbackup user dir

IFS=$'\t\n'; # Переназначаем разделитель для случая имён с пробелом

if [ ! -d /root/user-backup ] ; # проверяем наличие каталога с резервными копиями
then
  exit 0; # если каталога нет, то завершаем работу скрипта

else
	for i in /root/user-backup/* # если каталог есть, то читаем всё его содержимое
	do
		user_home=$(echo $i | sed 's/.*\///g' | sed 's/\.tar//g'); # Из имени файла вычленяем имя пользователя
		rm -R /home/$user_home ; # Удаляем каталог пользователя польностью
		tar xpf $i -C /home # Распаковываем сохранённую копию каталога пользователя на место удалённого
	done
fi

exit 0;


Скачать оба скрипта одним архивом можно здесь. (Скрипт user-backup изменён 06 марта 2012 г.)


Ещё один способ восстановления - простейший


Простейший вариант восстановления настроек пользователя.
Приведу пример на браузере mozilla firefox.

После полной настройки браузера нужно сжать в архив его каталог у пользователя.
Для этого выполняем из консоли с правами текущего пользователя вот это:

cd ~
tar cf ./.mozilla.tar ./.mozilla

Восстановление будет происходить каждый раз при входе пользователя в свою учётную запись.
Для этого необходимо добавить две строки в файл .profile

echo "rm -Rf ~/.mozilla" >> ~/.profile
echo "tar xf ./.mozilla.tar" >> ~/.profile

Команда rm -Rf ~/.mozilla удаляет имеющийся каталог настроек moziila.
Команда tar xf ./.mozilla.tar распаковывает архив на место удалённого каталога.

Всё! Теперь можно как угодно перестраивать Firefox-а, всёравно после перезагрузки или выхода/входа пользователя настройки будут возвращены из архива .mozilla.tar

Буквально сегодня сделал восстановление FF одной знакомой на Ubuntu-11.10 через архив и файл profile - всё работает изумительно.



Опубликовано: foxadmin, Автор/источник: Сакрюкин К.В. 12 Февраль 2012 20:56:24

Комментировать

Вы не залогинены! Регистрация

Комментарии

Страницы: 
[22:15:29 14.05.2012] Опубликовано Константин
foxadmin
Будет конечно! Но позже. Пришло тёплое время года и в месте с ним началась ремонтно-строительная эпопея дома. Так что... Позже, но обязательно будет!
[09:29:02 14.05.2012] Опубликовано Гость
No avatar
А у первого скрипта будет продолжение или всё?
[15:47:26 28.02.2012] Опубликовано Константин
foxadmin
Скрипты некоторое время будут обновляться. Следите за статьёй. Время обновления вверху красной строкой.
[15:45:25 28.02.2012] Опубликовано Константин
foxadmin
Вологда, спасибо за комментарий! Всегда рад помочь!
[08:47:54 28.02.2012] Опубликовано Апрель
No avatar
Классная штука! не надо теперь юзерские настройки каждый раз в ручную восстанавливать. Большое спасибо автору!
Страницы: 

Афоризмы, мысли

Единственное, что нужно просить у Бога - это, чтобы он вправил мозги просящему!
Всё остальное он человеку уже давно дал.

/Сакрюкин К.В./

Счётчик

Сейчас на сайте - 1 (0 зарег.)
Всего хитов3552 
Сегодня хитов3552 
Сегодня хостов652 

Откуда гости наши?

 
Powered by ReloadCMS 1.5.0.
© 2004-2012 ReloadCMS Team
RSS AggregationPHP powered
Генерация страницы: 0.5
  Яндекс.Метрика
    Сакрюкин К.В.   Яндекс цитирования    
 
Здесь всё можно копировать и цитировать, но рабочая ссылка на мой сайт обязательна!