Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Сергей Григорьев Гость
|
Добавлено: Вт Мар 05 2002 17:41 Заголовок сообщения: Как лучше всего организовать резервное копирование данных? |
|
|
Требуется настроить систему так что бы она делала копии каждый день и хранила каждую месяц, а по истечение времени переписывала бы устаревшие архивы. Или можно настроить tar так что бы он в название создаваемого архива вставлял дату? |
|
Вернуться к началу |
|
 |
Ens
Зарегистрирован: 05.03.2002 Сообщения: 11 Откуда: москва
|
Добавлено: Вт Мар 05 2002 18:18 Заголовок сообщения: Re: Как лучше всего организовать резервное копирование данных? |
|
|
тыкс вот такой вот скрипт запускаем по крону раз в день, с чего имеем архивные файлы с датой создания,в скрипте указываем каталоги для архивирования... Ens with best regards. ========================================== #!/usr/bin/perl
.. strict; my ($year,$yday)=(localtime(time))[5,7]; $year+=1900;
my $days_to_keep=31; #TTL for tarballs my $workdir="/usr/BackUp";
chdir($workdir);
my %DIRS=( '/usr/local/etc' = {fname='usr.etc', perm=0600}, '/etc' = {fname='etc', perm=0600}, '/var/db/mysql' = {fname='mysql', perm=0600}, '/www/cgi-bin' = {fname='cgibin', perm=0600}, '/www/data' = {fname='www', perm=0600} );
DeleteOld(); umask(0); foreach (keys %DIRS) { system("tar -cf - $_ | gzip ${DIRS{$_}-{fname}}-$yday-$year.tar.gz"); chmod(${DIRS{$_}-{perm}}, "${DIRS{$_}-{fname}}-$yday-$year.tar.gz"); }
sub DeleteOld { opendir(WD, $workdir); my @files=grep {!m/^\.+$/} readdir WD; closedir WD; foreach my $file (@files) { if ($file=~/(\d+)-(\d+)\.tar\.gz$/) { my ($yd,$y)=($1,$2); if ($y $days_to_keep) { unlink($file)||warn "cannot unlink $file: $!\n"; } } } }; |
|
Вернуться к началу |
|
 |
much Гость
|
Добавлено: Ср Мар 06 2002 06:26 Заголовок сообщения: Re: Как лучше всего организовать резервное копирование данных? |
|
|
RAID |
|
Вернуться к началу |
|
 |
crash
Зарегистрирован: 02.11.2001 Сообщения: 1836 Откуда: Бердск
|
Добавлено: Ср Мар 06 2002 08:32 Заголовок сообщения: Re: Как лучше всего организовать резервное копирование данных? |
|
|
а при чем тут райд к резервному копированию??? уже тогда можно сделать зеркалирование.... |
|
Вернуться к началу |
|
 |
Barmaley
Зарегистрирован: 02.01.2002 Сообщения: 8
|
Добавлено: Ср Мар 06 2002 11:52 Заголовок сообщения: Re: Как лучше всего организовать резервное копирование данных? |
|
|
смотри здесь: http://linux.webclub.ru/books/linuxsos/ch22_1.html |
|
Вернуться к началу |
|
 |
Сергей Григорьев Гость
|
Добавлено: Ср Мар 06 2002 13:07 Заголовок сообщения: Вопрос по скрипту |
|
|
У меня такой вопрос: я создал файл test с этим скриптом, но при попытки запуска система пишет: bash: ./test: No such file or directory По какой причине это может происходить? |
|
Вернуться к началу |
|
 |
rukan Гость
|
Добавлено: Ср Мар 06 2002 13:34 Заголовок сообщения: Re: Вопрос по скрипту |
|
|
chmod +x test |
|
Вернуться к началу |
|
 |
Сергей Григорьев Гость
|
Добавлено: Ср Мар 06 2002 16:23 Заголовок сообщения: У этого файла доступ сделан 777, но это не помагает (-) |
|
|
- |
|
Вернуться к началу |
|
 |
Ens
Зарегистрирован: 05.03.2002 Сообщения: 11 Откуда: москва
|
Добавлено: Ср Мар 06 2002 16:48 Заголовок сообщения: Re: У этого файла доступ сделан 777, но это не помагает (-) |
|
|
Скрипт на перле написан. Первое должен быть установлен perl если его нету то www.perl.com проверить есть или нет перл в системе можна так: perl -v если выдаст номер версии значит стоит, если даст ошибку то придется ставить. Далее если перл стоит, проверяем исполняемый ли файл. ls -l если нет ,то chmod +x test Далее,если перл стоит ,файл исполняемый,но непахает все равно. ищем такую строку в скрипте #!/usr/bin/perl тут пишется путь к интерпретатору,возможно у вас он находится например в /usr/local/bin/perl если незнаем точно где он лежит ,то придется искать,например так find / -name perl -print получаем путь к интерпретатору, изменяем соответствующую строку в скрипте. все. Best regards. Ens. |
|
Вернуться к началу |
|
 |
crash
Зарегистрирован: 02.11.2001 Сообщения: 1836 Откуда: Бердск
|
Добавлено: Чт Мар 07 2002 02:30 Заголовок сообщения: а где лежит perl |
|
|
если он прописан в переменой PATH не проще сделать which perl и вуаля, мы знаем место..))) |
|
Вернуться к началу |
|
 |
Valera Гость
|
Добавлено: Чт Мар 07 2002 05:56 Заголовок сообщения: Попробуй этот скрипт (+) |
|
|
#!/bin/sh cnt=$2 if [ $2 -le "1" ]; then cnt="1"; fi if [ $2 -ge "7" ]; then cnt="6"; fi if [ $# -ge "1" ]; then while [ $cnt -gt "0" ] do cnt1=$(($cnt-1)) if [ -r $1.$cnt1.gz ]; then mv $1.$cnt1.gz $1.$cnt.gz; fi cnt=$cnt1 done gzip -c $1 > $1.0.gz date "+Created at %d-%m-%Y %H:%M:%S by /root/bin/gz" > $1 else echo " File not defined. Usege gz [filename] cnt " fi Это аналог ротации файлов демона syslogd. Ну если подделать под нужды.... Вопросы по почте. |
|
Вернуться к началу |
|
 |
Сергей Григорьев Гость
|
Добавлено: Чт Мар 07 2002 09:05 Заголовок сообщения: Ситуация такая |
|
|
Перл стоит, где указано, в #!/usr/bin/perl; На файле доступ rwxrwxrwx; При попытке запуска пишет ./test No such file or directory |
|
Вернуться к началу |
|
 |
Ens
Зарегистрирован: 05.03.2002 Сообщения: 11 Откуда: москва
|
Добавлено: Чт Мар 07 2002 09:30 Заголовок сообщения: Re: Ситуация такая |
|
|
Либо коряво что то делаешь, либо ет ошибка скрипта который не может найти у тя указанные в нем каталоги для архивирования//проверь пути |
|
Вернуться к началу |
|
 |
Ens
Зарегистрирован: 05.03.2002 Сообщения: 11 Откуда: москва
|
Добавлено: Чт Мар 07 2002 09:36 Заголовок сообщения: Re: Ситуация такая(2) |
|
|
плюс в скрипте есть описание каталога, в который архивы складываются,создай его. |
|
Вернуться к началу |
|
 |
Сергей Григорьев Гость
|
Добавлено: Пт Мар 08 2002 15:52 Заголовок сообщения: Выдаёт ошибку в синтаксисе |
|
|
Вот как выглядит скрипт:
----------------------------- #!/usr/bin/perl #.. strict; my ($year,$yday)=(localtime(time))[5,7]; $year+=1900;
my $days_to_keep=31; #TTL for tarballs my $workdir="/home/sasha/msnet";
chdir($workdir);
my %DIRS=( '/home/vera' = {fname='77arh', perm=0770}, );
DeleteOld(); umask(0); foreach (keys %DIRS) { system("tar -cf - $_ | gzip ${DIRS{$_}-{fname}}-$yday-$year.tar.gz"); chmod(${DIRS{$_}-{perm}}, "${DIRS{$_}-{fname}}-$yday-$year.tar.gz"); }
sub DeleteOld { opendir(WD, $workdir); my @files=grep {!m/^\.+$/} readdir WD; closedir WD; foreach my $file (@files) { if ($file=~/(\d+)-(\d+)\.tar\.gz$/) { my ($yd,$y)=($1,$2); if ($y $days_to_keep) { unlink($file)||warn "cannot unlink $file: $!\n"; } } } }; ---------------------------------- А вот что получается при попытке запуска:
[root@gamma Linux]# ./scriptarh.txt Can't modify constant item in scalar assignment at ./scriptarh.txt line 11, near "'77arh'," Scalar found where operator expected at ./scriptarh.txt line 26, near "$y $days_to_keep" (Missing operator before $days_to_keep?) syntax error at ./scriptarh.txt line 26, near "$y $days_to_keep" syntax error at ./scriptarh.txt line 31, near "}" Execution of ./scriptarh.txt aborted due to compilation errors. |
|
Вернуться к началу |
|
 |
Sun-техник Гость
|
Добавлено: Вт Мар 12 2002 13:36 Заголовок сообщения: Re: Как лучше всего организовать резервное копирование данных? |
|
|
Поставить софт amanda |
|
Вернуться к началу |
|
 |
|