Автор Тема: Backup на файловом сервере  (Прочитано 5700 раз)

Оффлайн Canabis

  • Участник
  • *
  • Сообщений: 55
Backup на файловом сервере
« : 05.12.2008 11:56:18 »
Необходимо поставить механизм резервного копирования пользовательских файлов, открытых с помощью samba, на сервере. После прочтения документаций и путешествий по просторам сети, составил следующий скрипт:
#!/bin/sh
DATA=`date +%F`
find /var/lib/archive/ -type f -mtime -1 \
-not -wholename '/var/lib/archive/profiles/*/Recent/*' \
-not -wholename '/var/lib/archive/profiles/*/Cookies/*' \
-not -wholename '*/Thumbs.db' \
-not -wholename '*.lnk' \
-not -wholename '*.LNK' \
-not -wholename '*/desktop.ini' \
-not -wholename '*/Desktop.ini' \
-print0 | xargs -0 tar rvf "$DATA.tar" > /dev/null
gzip $DATA.tar
Этот скрипт планируется запускать каждую ночь с помощью /etc/cron.daily/.
Жду критики и предложений :)

Оффлайн Canabis

  • Участник
  • *
  • Сообщений: 55
Re: Backup на файловом сервере
« Ответ #1 : 29.12.2008 17:06:28 »
В результате сделал такой скрипт в cron.daily:
#!/bin/sh
BACKUPDIR=/var/backup/

# Удаление файлов старше 31 дня
for i in `find $BACKUPDIR * -mtime +31` ; do
rm -f $BACKUPDIR/$i
done

# Создание резерной копии измененных файлов за последний день
DATA=`date +%F`
find /var/lib/archive/ -type f -mtime -1 \
-not -wholename '/var/lib/archive/profiles/*/Recent/*' \
-not -wholename '/var/lib/archive/profiles/*/Cookies/*' \
-not -wholename '*/Thumbs.db' \
-not -wholename '*.lnk' \
-not -wholename '*.LNK' \
-not -wholename '*/desktop.ini' \
-not -wholename '*/Desktop.ini' \
-print0 | xargs -0 tar rvf "$BACKUPDIR$DATA.tar" > /dev/null
gzip $BACKUPDIR$DATA.tar

и такой в cron.monthly:
#!/bin/sh
BACKUPDIR=/var/backup_month/

# Создание резерной копии измененных файлов за последние 31 дня
DATA=`date +%F`
find /var/lib/archive/ -type f -mtime -31 \
-not -wholename '/var/lib/archive/profiles/*/Recent/*' \
-not -wholename '/var/lib/archive/profiles/*/Cookies/*' \
-not -wholename '*/Thumbs.db' \
-not -wholename '*.lnk' \
-not -wholename '*.LNK' \
-not -wholename '*/desktop.ini' \
-not -wholename '*/Desktop.ini' \
-print0 | xargs -0 tar rvf "$BACKUPDIR$DATA.tar" > /dev/null
gzip $BACKUPDIR$DATA.tar

Оффлайн Athlocatle

  • Участник
  • *
  • Сообщений: 257
Re: Backup на файловом сервере
« Ответ #2 : 29.12.2008 23:12:36 »
Работает? Не трожь!

Оффлайн Canabis

  • Участник
  • *
  • Сообщений: 55
Re: Backup на файловом сервере
« Ответ #3 : 11.01.2009 18:57:31 »
Работает. Но есть 2 недочета:
1. в архивах сохраняется полный путь (/var/lib/archive/...) хотя можно было бы оставить относительный;
2. при переносе архивов на мастдай и распаковке, руские символы нечитаемы, но это проблема в разных кодировках и вылечить, насколько я понимаю, нельзя.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 191
    • Домашняя страница
Re: Backup на файловом сервере
« Ответ #4 : 11.01.2009 20:04:41 »
2. при переносе архивов на мастдай и распаковке, руские символы нечитаемы, но это проблема в разных кодировках и вылечить, насколько я понимаю, нельзя.
Используйте zip или 7-zip. Если первый, то ни в коем случае не используйте WinRAR, а используйте стандартные средства Windows или WinZip.
Андрей Черепанов (cas@)

Оффлайн SantaClausRpm

  • Участник
  • *
  • Сообщений: 43
Re: Backup на файловом сервере
« Ответ #5 : 17.01.2009 22:05:01 »
Критика такая:
1. полностью отсутствует постановка задачи (всё остальное уже можно не смотреть)
Бэкапите как я понял на том же диске, а отчеты отправляются в /dev/null. Ужос-ужос!!!  :o

2. см. п.1. Вы себе этими бэкапами весь диск забьете: 'date +%F'
3. придет юзер: надо восстановить файл имя не помню, но что-то вроде "*бла-бла*.pdf", папку, дату не помню. Сколько времени искать будете?
и т.п.

см. также http://sysadminonline.ru/category/bekap/
In FOSS we trust

Оффлайн Canabis

  • Участник
  • *
  • Сообщений: 55
Re: Backup на файловом сервере
« Ответ #6 : 19.01.2009 11:45:06 »
Бэкапите как я понял на том же диске
Папку назначения легко поменять в скрипте.
а отчеты отправляются в /dev/null. Ужос-ужос!!!  :o
Покрайней мере на время тестирования исправил так:
# Создание резерной копии измененных файлов за последний день
DATA=`date +%F`
find /var/lib/archive/ -type f -mtime -1 \
-not -wholename '/var/lib/archive/profiles/*/Recent/*' \
-not -wholename '/var/lib/archive/profiles/*/Cookies/*' \
-not -wholename '/var/lib/archive/profiles/*/*prf*.tmp' \
-not -wholename '*/Thumbs.db' \
-not -wholename '*.lnk' \
-not -wholename '*.LNK' \
-not -wholename '*/desktop.ini' \
-not -wholename '*/Desktop.ini' \
-not -wholename '*/varentsova/*/Outlook.pst' \
-print0 2>> "$BACKUPDIR$DATA-find.txt" \
| xargs -0 tar rvf "$BACKUPDIR$DATA.tar" \
>> "$BACKUPDIR$DATA-list.txt" 2>> "$BACKUPDIR$DATA-tar.txt"
gzip $BACKUPDIR$DATA.tar 2>> "$BACKUPDIR$DATA-gzip.txt"
Буду смотреть отчеты...
Цитировать
2. см. п.1. Вы себе этими бэкапами весь диск забьете: 'date +%F'
1. бэкапятся только измененные/созданные файлы, а их не так уж и много в день;
2. ежедневные бэкапы храняться 31 день:
# Удаление файлов старше 31 дня
for i in `find $BACKUPDIR * -mtime +31` ; do
rm -f $BACKUPDIR/$i
done
а месячные будут записываться на болванки
Цитировать
3. придет юзер: надо восстановить файл имя не помню, но что-то вроде "*бла-бла*.pdf", папку, дату не помню. Сколько времени искать будете?
Много времени. Желание восстановить файл в основном возникает после 1-2 дней после удаления/изменени. А вероятность возникновения описанной вами ситуации в моих условиях стремиться к нулю.

Оффлайн AMike

  • alt linux team
  • ***
  • Сообщений: 479
Re: Backup на файловом сервере
« Ответ #7 : 19.01.2009 18:52:09 »
и каждый раз, каждый админ, хоть раз в жизни напишет свою бекап систему...
Чем не устроила, хотя бы Bacula?

Оффлайн SantaClausRpm

  • Участник
  • *
  • Сообщений: 43
Re: Backup на файловом сервере
« Ответ #8 : 19.01.2009 22:23:03 »
и каждый раз, каждый админ, хоть раз в жизни напишет свою бекап систему...
Чем не устроила, хотя бы Bacula?
Бакула немного сложнее скрипта и это решение уровня предприятия. Нет смысла развертывать его для 1-го сервера. Хотя...

ps. Если что, есть где-то русскоязычная гугл-группа по бакула.
In FOSS we trust

Оффлайн SantaClausRpm

  • Участник
  • *
  • Сообщений: 43
Re: Backup на файловом сервере
« Ответ #9 : 19.01.2009 22:28:44 »
Покрайней мере на время тестирования исправил так:
Буду смотреть отчеты...

2. ежедневные бэкапы храняться 31 день:
# Удаление файлов старше 31 дня
for i in `find $BACKUPDIR * -mtime +31` ; do
rm -f $BACKUPDIR/$i
done
а месячные будут записываться на болванки
Цитировать
3. придет юзер: надо восстановить файл имя не помню, но что-то вроде "*бла-бла*.pdf", папку, дату не помню. Сколько времени искать будете?
Много времени. Желание восстановить файл в основном возникает после 1-2 дней после удаления/изменени. А вероятность возникновения описанной вами ситуации в моих условиях стремиться к нулю.

Отчеты надо читать всегда. Складируйте в файл, что бэкапили + дата. Это будет типа оглавления.
А в скрипт добавьте проверку $? если есть ошибки - емайл админу.

Формат даты в имени архива переделайте так, чтобы дни следующего месяца писались на предыдущий, без всяких  -mtime +31.

С CD/DVD скоро хлебнете горя.

ps. Если занялись архивацией - самописные скрипты - потеря времени и данных. Используйте уже существующие решения.


In FOSS we trust

Оффлайн Canabis

  • Участник
  • *
  • Сообщений: 55
Re: Backup на файловом сервере
« Ответ #10 : 20.01.2009 13:14:54 »
А в скрипт добавьте проверку $? если есть ошибки - емайл админу.
Что за проверка $?
Цитировать
Формат даты в имени архива переделайте так, чтобы дни следующего месяца писались на предыдущий, без всяких  -mtime +31.
сделал:
#!/bin/sh
BACKUPDIR=/var/backup/

# Удаление файлов старше 31 дня
for i in `find $BACKUPDIR * -mtime +31` ; do
rm -f $i
done

# Создание резерной копии измененных файлов за последний день
DATA=`date +%d`
find /var/lib/archive/ -type f -mtime -1 \
-not -wholename '/var/lib/archive/profiles/*/Recent/*' \
-not -wholename '/var/lib/archive/profiles/*/Cookies/*' \
-not -wholename '/var/lib/archive/profiles/*/*prf*.tmp' \
-not -wholename '*/Thumbs.db' \
-not -wholename '*.lnk' \
-not -wholename '*.LNK' \
-not -wholename '*/desktop.ini' \
-not -wholename '*/Desktop.ini' \
-not -wholename '*/varentsova/*/Outlook.pst' \
-print0 2>> "$BACKUPDIR$DATA-find.txt" \
| xargs -0 tar rvf "$BACKUPDIR$DATA.tar" \
>> "$BACKUPDIR$DATA-list.txt" 2>> "$BACKUPDIR$DATA-tar.txt"
gzip -f $BACKUPDIR$DATA.tar 2>> "$BACKUPDIR$DATA-gzip.txt"
удаление файлов старше 31 дня уберу после того, как пропадут файлы формата 2009-01-20.tar.gz

Цитировать
С CD/DVD скоро хлебнете горя.
почему?

Цитировать
ps. Если занялись архивацией - самописные скрипты - потеря времени и данных. Используйте уже существующие решения.
Уже склоняюсь. А какие посоветуете (помимо бакулы)?
« Последнее редактирование: 20.01.2009 14:34:41 от Canabis »

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 191
    • Домашняя страница
Re: Backup на файловом сервере
« Ответ #11 : 20.01.2009 15:16:32 »
Уже склоняюсь. А какие посоветуете (помимо бакулы)?
В школьном сервере для резервного копирования используется synbak
Андрей Черепанов (cas@)

Оффлайн SantaClausRpm

  • Участник
  • *
  • Сообщений: 43
Re: Backup на файловом сервере
« Ответ #12 : 20.01.2009 22:08:44 »
Цитировать
С CD/DVD скоро хлебнете горя.
почему?

Цитировать
ps. Если занялись архивацией - самописные скрипты - потеря времени и данных. Используйте уже существующие решения.
Уже склоняюсь. А какие посоветуете (помимо бакулы)?
Э-ээ, я юзаю бакулу ;)
Погуглите, например, rdiff-backup и т.п.

Насчет DVD - по ссылке ходили? Читали?
In FOSS we trust

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 191
    • Домашняя страница
Re: Backup на рабочей станции?
« Ответ #13 : 20.05.2009 17:58:55 »
А как им пользоваться на рабочей станции? (например чтоб текстовый файл, раз в день бекапить?)
Читайте документацию по синбаку.
Андрей Черепанов (cas@)

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 191
    • Домашняя страница
Re: документация по синбаку.
« Ответ #14 : 20.05.2009 19:38:30 »
документацию по синбаку.
...русский, где включатся? Не подскажите?
Нету. Используйте модули alterator по резервному копированию.
Андрей Черепанов (cas@)