1

Нужно делать бекап базы данных.
Решил делать скриптом.

#!/bin/bash
#префикс c датой, чтобы знать от какого числа бэкап
DATE=`date +%F`
#указываем директорию по умолчанию
DIR=/home/zbackup/mysql/$DATE
#делаем автоотчистку мусора, допустим вам надо хранить старые бэкапы только 3 дня.
find /home/zbackup/mysql/ -mtime +3 -print -mindepth 1 -delete >/dev/null 2>&1
#указываем какую базу вам нужно бэкапить
mysqldump -uroot -h localhost -pпароль_рута 1baz > $DIR\_1bz.sql

вызывая этот скрипт вручную с консоли все отрабатывает на ура.
Добавил в cron

crontab -e
00 4 * * * /etc/.rassol2/mysql_backup.sh

но результата нет ac

посоветуйте как узнать причину ?

Никогда не бойся делать то, что ты не умеешь. Помни, "КОВЧЕГ" был построен ЛЮБИТЕЛЕМ. ПРОФЕССИОНАЛЫ построили "ТИТАНИК"

2

может с владельцем и группой проблемы ?

Спросить - стыд минуты, не узнать - стыд всей жизни

3

вот я думаю что нужно как то задать запуск этого скрипта от рута, или что то еше?
права на фаил рут 700

Никогда не бойся делать то, что ты не умеешь. Помни, "КОВЧЕГ" был построен ЛЮБИТЕЛЕМ. ПРОФЕССИОНАЛЫ построили "ТИТАНИК"

4

ну в кроне насколько я знаю можно указать юзера от которо должна выполнятся команда... ну если crontab -e выполнялось от рута то по идее указывать необязательно

Спросить - стыд минуты, не узнать - стыд всей жизни

5

Rassol2 пишет:

но результата нет ac

посоветуйте как узнать причину ?

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

6 (14.02.2014 11:12:28 отредактировано lone_wolf)

Эм попробуй убрать 1-ин 0-ль, там должен быть только 1-ин 0-ль

 Консоль:
crontab -e
0 4 * * * /etc/.rassol2/mysql_backup.sh

Спросить - стыд минуты, не узнать - стыд всей жизни

7

Еще возможно, что в строке DATE=`date +%F` надо заэкранировать "+" и "%".

8

lone_wolf пишет:

Эм попробуй убрать 1-ин 0-ль, там должен быть только 1-ин 0-ль

 Консоль:
crontab -e
0 4 * * * /etc/.rassol2/mysql_backup.sh

не совсем понял, убрать первый 0 ?
Что то вроде

 Консоль:
crontab -e
* 4 * * * /etc/.rassol2/mysql_backup.sh

Никогда не бойся делать то, что ты не умеешь. Помни, "КОВЧЕГ" был построен ЛЮБИТЕЛЕМ. ПРОФЕССИОНАЛЫ построили "ТИТАНИК"

9 (14.02.2014 18:20:55 отредактировано lone_wolf)

неее сдеть вот так:

 Консоль:
crontab -e
0 4 * * * /etc/.rassol2/mysql_backup.sh

Спросить - стыд минуты, не узнать - стыд всей жизни

10

Rassol2, перенаправь вывод то в файл то для отладки...

95% процентов проблем находятся между клавиатурой и стулом.

11

Fat-Zer пишет:

Rassol2, перенаправь вывод то в файл то для отладки...

а как сделать это ?

0 4 * * * /etc/.rassol2/mysql_backup.sh > /home/1.txt
Никогда не бойся делать то, что ты не умеешь. Помни, "КОВЧЕГ" был построен ЛЮБИТЕЛЕМ. ПРОФЕССИОНАЛЫ построили "ТИТАНИК"

12

/etc/.rassol2/mysql_backup.sh >>/tmp/mysql_backup.log 2>&1
и время поставь какое-нить чтобы до 4-х утра не ждать, и перенаправь куда-нить в /tmp, чтобы с правами точно проблем не было... stdout, вообще говоря, тут не нужен... только если глушилку из find'а убрать...

и посмотри логи... по идее если mysqldump проваливается крон должен это записать

95% процентов проблем находятся между клавиатурой и стулом.

13

попробуем

Никогда не бойся делать то, что ты не умеешь. Помни, "КОВЧЕГ" был построен ЛЮБИТЕЛЕМ. ПРОФЕССИОНАЛЫ построили "ТИТАНИК"

14

Fat-Zer пишет:

/etc/.rassol2/mysql_backup.sh >>/tmp/mysql_backup.log 2>&1
и время поставь какое-нить чтобы до 4-х утра не ждать, и перенаправь куда-нить в /tmp, чтобы с правами точно проблем не было... stdout, вообще говоря, тут не нужен... только если глушилку из find'а убрать...

и посмотри логи... по идее если mysqldump проваливается крон должен это записать

не прокатило ac

бакап не создался.
Лога нет.

10 19 * * * /etc/.rassol2/mysql_backup.sh
15 19 * * * /etc/.rassol2/mysql_backup.sh >>/tmp/mysql_backup.log 2>&1

так было прописано.

Никогда не бойся делать то, что ты не умеешь. Помни, "КОВЧЕГ" был построен ЛЮБИТЕЛЕМ. ПРОФЕССИОНАЛЫ построили "ТИТАНИК"

15 (14.02.2014 23:36:02 отредактировано lone_wolf)

эм в скрипте не увидел куда нужно складывать бекап  bw
и вот тут

 Консоль:
mysqldump -uroot -h localhost -pпароль_рута 1baz > $DIR\_1bz.sql

должно быть не вот так ?
 Консоль:
mysqldump -uroot -h localhost -pпароль_рута 1baz > $DIR/_1bz.sql

Спросить - стыд минуты, не узнать - стыд всей жизни

16

lone_wolf пишет:

эм в скрипте не увидел куда нужно складывать бекап  bw
и вот тут

 Консоль:
mysqldump -uroot -h localhost -pпароль_рута 1baz > $DIR\_1bz.sql

должно быть не вот так ?
 Консоль:
mysqldump -uroot -h localhost -pпароль_рута 1baz > $DIR/_1bz.sql

допустим за экранируем. Но это не решит общего вопроса работы крона.

азница только в том что скрипт вручную запускается с консоли. И скрипт запускается кроном. Во проблема где то в это разнице.

Никогда не бойся делать то, что ты не умеешь. Помни, "КОВЧЕГ" был построен ЛЮБИТЕЛЕМ. ПРОФЕССИОНАЛЫ построили "ТИТАНИК"

17

Rassol2, а крон то запущен?

95% процентов проблем находятся между клавиатурой и стулом.

18 (15.02.2014 00:29:34 отредактировано lone_wolf)

Rassol2 пишет:
lone_wolf пишет:

эм в скрипте не увидел куда нужно складывать бекап  bw
и вот тут

 Консоль:
mysqldump -uroot -h localhost -pпароль_рута 1baz > $DIR\_1bz.sql

должно быть не вот так ?
 Консоль:
mysqldump -uroot -h localhost -pпароль_рута 1baz > $DIR/_1bz.sql

допустим за экранируем. Но это не решит общего вопроса работы крона.

азница только в том что скрипт вручную запускается с консоли. И скрипт запускается кроном. Во проблема где то в это разнице.

мне чего-то всю жизжинь думал что / это бэкслеш применяюший ся в пути а вот \  это экранируюший

Спросить - стыд минуты, не узнать - стыд всей жизни

19

Fat-Zer пишет:

Rassol2, а крон то запущен?

 Консоль:
root@Debian114:~# ps faux | grep cron
root      1139  0.0  0.0  22428   804 ?        Ss   Jan30   0:00 /usr/sbin/cron
root     11680  0.0  0.0   7548   844 pts/0    S+   22:23   0:00          \_ grep cron

+ создал "колокольчик"
 Консоль:
crontab -e
*/5 * * * * echo "Прошло пять минут"

просидел 10 минут пытался не моргать но ничего не увидел.

Никогда не бойся делать то, что ты не умеешь. Помни, "КОВЧЕГ" был построен ЛЮБИТЕЛЕМ. ПРОФЕССИОНАЛЫ построили "ТИТАНИК"

20

мне чего-то всю жизжинь думал что / это бэкслеш применяюший ся в пути а вот \  это экранируюший

все правильно вам казалось.

Никогда не бойся делать то, что ты не умеешь. Помни, "КОВЧЕГ" был построен ЛЮБИТЕЛЕМ. ПРОФЕССИОНАЛЫ построили "ТИТАНИК"

21

chmod +x /etc/.rassol2/mysql_backup.sh

?

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

22

Kettler пишет:
chmod +x /etc/.rassol2/mysql_backup.sh

?

-rwx------ 1 root root 601 Feb 14 18:46 mysql_backup.sh

но вот незадача. Мне от крона даже вот это в консоль не пишет

 Консоль:
*/5 * * * * echo "Прошло пять минут"

Никогда не бойся делать то, что ты не умеешь. Помни, "КОВЧЕГ" был построен ЛЮБИТЕЛЕМ. ПРОФЕССИОНАЛЫ построили "ТИТАНИК"

23 (15.02.2014 01:33:54 отредактировано Kettler)

А где от какого пользователя выполнять?

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

24

Rassol2 пишет:
Kettler пишет:
chmod +x /etc/.rassol2/mysql_backup.sh

?

-rwx------ 1 root root 601 Feb 14 18:46 mysql_backup.sh

но вот незадача. Мне от крона даже вот это в консоль не пишет

 Консоль:
*/5 * * * * echo "Прошло пять минут"

http://manpages.debian.net/cgi-bin/man. … ;sektion=5

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

25

Kettler пишет:

А где от какого пользователя выполнять?

crontab -e от рута.

Так же когда от рута напрямую вызываю скрипт из консоли он отрабатывает.

через чур хардкорно.

Никогда не бойся делать то, что ты не умеешь. Помни, "КОВЧЕГ" был построен ЛЮБИТЕЛЕМ. ПРОФЕССИОНАЛЫ построили "ТИТАНИК"

26

Rassol2 пишет:

просидел 10 минут пытался не моргать но ничего не увидел.

в файл надо перенаправить... в консоль он моргать не будет... откуда крону знать, в какую консоль моргнуть?
кстати, какой у тебя cron?

95% процентов проблем находятся между клавиатурой и стулом.

27

Fat-Zer пишет:
Rassol2 пишет:

просидел 10 минут пытался не моргать но ничего не увидел.

в файл надо перенаправить... в консоль он моргать не будет... откуда крону знать, в какую консоль моргнуть?
кстати, какой у тебя cron?

это гугл подсказал так сделать. Обманщик он.

Но походу вот тут косяк.

 Консоль:
root@Debian114:~# cron version
cron: can't lock /var/run/crond.pid, otherpid may be 1139: Resource temporarily unavailable

Никогда не бойся делать то, что ты не умеешь. Помни, "КОВЧЕГ" был построен ЛЮБИТЕЛЕМ. ПРОФЕССИОНАЛЫ построили "ТИТАНИК"

28

Rassol2 пишет:

но вот незадача. Мне от крона даже вот это в консоль не пишет

 Консоль:
*/5 * * * * echo "Прошло пять минут"

В какую именно консоль он не пишет?
Обычное заблуждение думать, что если ты открываешь какой X-терминал, то cron будет туда писать свои сообщения.
Если хочешь контролировать колокольчик, то его лучше делать так:

 Консоль:
*/5 * * * * logger -t MyBell "Прошло пять минут"

и смотреть его вывод в /var/log/messages. Например так:
 Консоль:
tail -f /var/log/messages

29

крон работает.

Feb 17 23:20:01 Debian114 MyBell: Прошло пять минут
Feb 17 23:25:01 Debian114 MyBell: Прошло пять минут

Значит таки методом можно посмотреть почему не делается бекап ?

Никогда не бойся делать то, что ты не умеешь. Помни, "КОВЧЕГ" был построен ЛЮБИТЕЛЕМ. ПРОФЕССИОНАЛЫ построили "ТИТАНИК"

30

там об ошибку выполнения не сообщает. Уже и не знаю что делать ac

Никогда не бойся делать то, что ты не умеешь. Помни, "КОВЧЕГ" был построен ЛЮБИТЕЛЕМ. ПРОФЕССИОНАЛЫ построили "ТИТАНИК"