Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по Linux (http://forum.oszone.net/forumdisplay.php?f=9)
-   -   Резервное копирование базы данных (http://forum.oszone.net/showthread.php?t=75505)

Non-Stop 01-12-2006 15:20 519437

Резервное копирование базы данных
 
Задача:
Осуществить автоматическое резервное копирование базы данных

Ситуация:
Создал скрипт
Код:

#! /bin/sh

fl='date "+%m-%Y"'
cd /usr/local/
/usr/bin/mysqldump -Q --password=111111 -u bill bill > ${fl}.sql
tar -cfz ${fl}.tar.gz  ${fl}.sql
rm -f ${fl}.sql
chmod 400  ${fl}.tar.gz

При запуске скрипта выдаёт ошибки:
tar: date: Cannot stat: No such file or directory
tar: "+%m-%Y".tar.gz: Cannot stat: No such file or directory
tar: date: Cannot stat: No such file or directory
tar: "+%m-%Y".sql: Cannot stat: No such file or directory
tar: Выход, отложенный по результатам предыдущих ошибок
chmod: невозможно получить доступ к `date': No such file or directory
chmod: невозможно получить доступ к `"+%m-%Y".tar.gz': No such file or directory

но бекап всётаки создаёт с именем
/usr/local/date "+%m-Y".sql

Поправьте пожалуйста мой скрипт, где ошибка?

must die 01-12-2006 15:58 519451

Non-Stop

Попробуй так :)
tar cfz ${fl}.tar.gz ${fl}.sql

Non-Stop 01-12-2006 16:05 519456

Цитата:

Попробуй так
tar cfz ${fl}.tar.gz ${fl}.sql
так тоже не помогло

помоему дело в дате...
он поидее должен сохранять файл число месяц год .sql
а он сохраняет файл базы date "+%m-Y".sql

must die 01-12-2006 16:22 519463

Non-Stop

Вот вам пример:

Код:


      1 #! /bin/sh
      2
      3 name=`/bin/date "+%m-%Y"`
      5 ls -l > ${name}
      6 tar cfz ${name}.tar.gz  ${name}


Non-Stop 01-12-2006 16:38 519472

Код:

#! /bin/sh

name='/bin/date "+%m-%Y"'
cd /usr/local/nodeny
/usr/bin/mysqldump -Q --password=55555 -u bill bill > ${fl}.sql
ls -l > ${name}
tar -cfz ${name}.tar.gz ${name}

tar: Removing leading `/' from member names
tar: /bin/date: Cannot stat: No such file or directory
tar: "+%m-%Y".tar.gz: Cannot stat: No such file or directory
tar: /bin/date: Cannot stat: No such file or directory
tar: "+%m-%Y".sql: Cannot stat: No such file or directory
tar: Выход, отложенный по результатам предыдущих ошибок

Borodunter 01-12-2006 16:43 519474

Non-Stop
может ты одинарные кавычки перепутал и написал ' (русская Э) вместо `(русская Ё)?

must die 01-12-2006 16:49 519477

Borodunter
Не может, а так и есть :)


Non-Stop
Сравни код который ты запостил и мой пример.

Non-Stop 01-12-2006 18:31 519516

Код:

#! /bin/sh

name=`/bin/date "+%m-%Y"`
 cd /usr/local/nodeny 
/usr/bin/mysqldump -Q --password=55555 -u bill bill > ${fl}.sql 
ls -l > ${name}
 tar -cfz ${name}.tar.gz ${name}

действительно прерпутал кавычки, но ошибку всёже выдаёт

./base_sql: line 1: date: command not found
./base_sql: line 6: ${name}: ambiguous redirect
tar: .tar.gz: Cannot stat: No such file or directory
tar: Выход, отложенный по результатам предыдущих ошибок

Сron на мыло шлёт
/usr/sbin/logcheck: line 1: date: command not found

ruslandh 02-12-2006 11:02 519723

Non-Stop
1 Как я понял вы пытаетесь запустить этот скрипт из crontab, но не учитываете, что crontab не имеет окружения ($PATH), так, что надо для всех команд прописывать полный путь. (date поправили, а у tar и ls путь не указан).
2 Прежде, чем использовать скрипт убедитесь все-ли пути прописаны у вас правильно (например date может находится и в /usr/bin/date - откуда я могу знать ваш дистрибутив и как вы его устанавливали ? )
3 Пропишите явно /bin/bash, а то непонятно что вызывает sh.


Время: 00:01.

Время: 00:01.
© OSzone.net 2001-