1

Тема: Crontab не запускает скрипт!

Есть скрит для бекапа скл баз!

#!/bin/sh
mysqldump="/usr/local/bin/mysqldump"
mysqlparam="-u root -ppassword"
bzip2="/usr/bin/bzip2"
databases=`echo "show databases" | mysql ${mysqlparam} | grep -v "^D"`
dstdir="/backup/mysql" 
fname=`date "+%Y-%m-%d`
# remove old
/usr/bin/find $dstdir -atime +8 -delete
# back it up
for dbs in $databases
do
$mysqldump $mysqlparam $dbs| $bzip2 -c -9 > ${dstdir}/${dbs}-${fname}.sql.bz2
done

#crontab -e

08      13      *       *       *               /usr/local/fsbackup/mysql

И тишина!
В ручную все ок запускаетса! Заранее спс!

2

Re: Crontab не запускает скрипт!

Так сделай.

08      13      *       *       *          sh    /usr/local/fsbackup/mysql

3

Re: Crontab не запускает скрипт!

ankor пишет:

Так сделай.

08      13      *       *       *          sh    /usr/local/fsbackup/mysql

Неа!! Не хочет! Вручную запускает, с крона нет!

4

Re: Crontab не запускает скрипт!

Куда ты эту строку вставляешь? В /etc/crontab?
Если так, то по моему мнению это неудачный вариант.

Советую сделать так:

Создать файл /root/mycron
в нем

08      13      *       *       *          sh    /usr/local/fsbackup/mysql

Выполнить:
#crontab /root/mycron
в каталоге /var/cron/tabs создается файл root
после чего начинает отрабатывать cron, если файл root удалить, то задания
прекращают выполняться. Удобно, если на ходу менять(добавлять,убирать) задания.

5

Re: Crontab не запускает скрипт!

Куда ты эту строку вставляешь?

Пробовал и             

#ee /etc/crontab

              и             

#crontab -e

Советую сделать так

Сделал!    /var/cron/tabs создался , но задание не выполнилось!

Может быть дело в самом скрипте?
Вот мой кронтаб
# crontab -l

25      15      *       *       *          sh    /usr/local/fsbackup/mysql
26      15      *       *       *               /usr/local/fsbackup/create_backup.sh

Второе задание выполняетса!


# ls -la

-rwxrwxrwx   1 root  wheel    426 Dec 16 13:03 mysql
-rwx--x--x   1 root  wheel   3256 Dec 16 11:30 create_backup.sh

6

Re: Crontab не запускает скрипт!

Если скрипт запускается в ручную, то в кроне он просто обязан работать.
Должно все работать, можно попробывать так

25      15      *       *       *      root    sh    /usr/local/fsbackup/mysql

и посмотреть в /var/log/cron там все задания логируютя.
Странно, одно задание срабатывает, другое нет.

7

Re: Crontab не запускает скрипт!

Добавил

25      15      *       *       *      root    sh    /usr/local/fsbackup/mysql

Вот кусок лога

Dec 16 15:45:00 finreguest /usr/sbin/cron[64265]: (root) CMD (root    sh    /usr/local/fsbackup/mysql)

КАк то странно! Уже гуглю второй день, пробую разные варианты, всёравно никак  sad

8

Re: Crontab не запускает скрипт!

Может ты в конце имени файла .sh поставишь, а то у меня идеи закончились.

9

Re: Crontab не запускает скрипт!

Добвлял я .sh! Всё тоже!

а то у меня идеи закончились.

У меня тоже! ЩА попробую на другом серве!

10

Re: Crontab не запускает скрипт!

Вот ещё одна идея!

25      15      *       *       *      root   /bin/sh   /usr/local/fsbackup/mysql

11

Re: Crontab не запускает скрипт!

Сделал на другом серве!

Вот что на почту пришло!

Тема:Cron <root@gate> /var/mysql_backup/mysql.sh
mysql: not found

Вручную всё ок запустилось  sad  !

Предыдущий в-нт тоже не выходит!

12

Re: Crontab не запускает скрипт!

Идей нет sad
Есть бредовая roll поменять имя файла, ну точно бред.

13

Re: Crontab не запускает скрипт!

в скрипте нужно прописывать путь до mysql
У Вас видимо там установлено просто mysql
а нужно (думаю такой путь - првоерьте еще)
/usr/local/bin/mysql

14

Re: Crontab не запускает скрипт!

Alexander пишет:

в скрипте нужно прописывать путь до mysql
У Вас видимо там установлено просто mysql
а нужно (думаю такой путь - првоерьте еще)
/usr/local/bin/mysql

Блинаа! Где же ты был раньше? Спс тебе большое! Заработало!

Добавил в скрипт mysql="/usr/local/bin/mysql"

15

Re: Crontab не запускает скрипт!

или путь или в кроне указать переменную PATH.
ankor зачем создавать какие файлы для crontab. если существует нормально решение и он сам создаст файл где надо. останется только прописать когда и что надо запускать.

16

Re: Crontab не запускает скрипт!

crash пишет:

ankor зачем создавать какие файлы для crontab. если существует нормально решение и он сам создаст файл где надо. останется только прописать когда и что надо запускать.

Нормальное решение описано здесь.
https://www.freebsd.org.ua/doc/ru_RU.KOI … -cron.html

17

Re: Crontab не запускает скрипт!

оч. даже похоже
скрипт для резервного копирования на удаленный ftp
#!/bin/sh
rsync -avz --progress /var/backups/ [email protected]:/usr/home/backup/backups_smt

crontab -e
1     */1   *   *   *   root sh /etc/backup_script.sh
/var/log/cron
Jan 17 17:01:02 SMT /usr/sbin/cron[2232]: (root) CMD (root sh /etc/backup_script.sh)
в итоге  на удаленном ftp ничего нету.
SMT# sh /etc/backup_script.sh
всё работает.

почитал тему.добавил в скрипт (если я правельно понял)

rsync="/usr/local/bin/rsync"

и ничего!

помогите пожалуйста

18

Re: Crontab не запускает скрипт!

насколько я помню  в пользовательском cron файле не указывается имя пользователя. И почему вы не хотите сделать файл выполнимым? Тогда можно убрать команду sh. И чтобы crontab выполнял команды без полного пути, надо прописывать переменную PATH

19

Re: Crontab не запускает скрипт!

chmod +x /etc/backup_script.sh

/etc/backup_script.sh

работает

убрал имя пользователя в cron и команду  sh.

/var/log/cron

Jan 18 09:25:01 SMT /usr/sbin/cron[13580]: (root) CMD (/etc/backup_script.sh)

бекапа на ftp нету

20

Re: Crontab не запускает скрипт!

сделайте в скрипте чтобы писало в лог и посмотрите в чем будет косяк.

Добавлено: 18-01-2013 14:52:13

и укажите полный путь к команде rsync

21

Re: Crontab не запускает скрипт!

я не очень силен пока в freebsd а тем более в написании скриптов

сделал

#!/bin/sh

rsync="/usr/local/bin/rsync"
rsync -avz --progress /var/backups/ [email protected]:/usr/home/backup/backups_smt >> /var/log/rsync_error.log


выполнил вручную  /etc/backup_script.sh
работает

/var/lor/rsync_error.log


sending incremental file list
./
16-01-2013.tar.gz
       32768  45%    0.00kB/s    0:00:00^M       72034 100%   37.45MB/s    0:00:00 (xfer#1, to-check=6/8)
17-01-2013.tar.gz
       32768  46%   10.42MB/s    0:00:00^M       70620 100%   13.47MB/s    0:00:00 (xfer#2, to-check=5/8)
18-01-2013.tar.gz
       32768  45%    5.21MB/s    0:00:00^M       71516 100%    8.53MB/s    0:00:00 (xfer#3, to-check=4/8)
aliases.bak
        1667 100%  203.49kB/s    0:00:00^M        1667 100%  203.49kB/s    0:00:00 (xfer#4, to-check=3/8)
group.bak
         465 100%   56.76kB/s    0:00:00^M         465 100%   56.76kB/s    0:00:00 (xfer#5, to-check=2/8)
master.passwd.bak
        1618 100%  197.51kB/s    0:00:00^M        1618 100%  197.51kB/s    0:00:00 (xfer#6, to-check=1/8)
rsyncd.conf
         766 100%   93.51kB/s    0:00:00^M         766 100%   93.51kB/s    0:00:00 (xfer#7, to-check=0/8)

sent 219279 bytes  received 148 bytes  438854.00 bytes/sec
total size is 218686  speedup is 1.00


пробую запустить на крон
лог крона

Jan 18 10:39:01 SMT /usr/sbin/cron[1702]: (root) RELOAD (tabs/root)
Jan 18 10:39:01 SMT /usr/sbin/cron[14490]: (root) CMD (/etc/backup_script.sh)
Jan 18 10:40:01 SMT /usr/sbin/cron[14506]: (root) CMD (/usr/libexec/atrun)

лог /var/log/rsync_error.log

пусто

что не так?
подскажите как правельно сделать чтоб скрипт писал в лог ошибку

22

Re: Crontab не запускает скрипт!

сделайте нормально

/usr/local/bin/rsync -avz --progress /var/backups/ [email protected]:/usr/home/backup/backups_smt

или если вам хочется очень чтобы короткая была команда, тогда

rsync="/usr/local/bin/rsync"
$rsync -avz --progress /var/backups/ [email protected]:/usr/home/backup/backups_smt

Добавлено: 18-01-2013 16:03:53

и в файле cron у вас в конце стоит перевод строки?

23

Re: Crontab не запускает скрипт!

спасибо большое. всё работает и даже пишет лог smile
а причина то простая:
нужно было

rsync="/usr/local/bin/rsync"
$rsync -avz --progress /var/.....

а у меня

rsync="/usr/local/bin/rsync"
rsync -avz --progress /var/.....

24 (05-09-2013 07:00:47 отредактировано Andrey@Fly@)

Re: Crontab не запускает скрипт!

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

#!/bin/sh
sync
rm -f /home/BACKUP/mysql-linweb.tgz
tar cfvz /home/BACKUP/mysql-linweb.tgz /var/lib/mysql


-Файл crontab:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
#01 * * * * root run-parts /etc/cron.hourly
#02 4 * * * root run-parts /etc/cron.daily
#22 4 * * 0 root run-parts /etc/cron.weekly
#42 4 1 * * root run-parts /etc/cron.monthly
00,30 * * * * root /home/make_backup_mysql.sh

-Указав так он каждые пол часа запускается и выполняет действия указанные в скрипте.

-Но если в файле crontab указываю как показано ниже, а сам скрипт ложу в каталог cron.hourly, то каждый час данный скрипт не отрабатывает.

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

-В логах cron пишет:

crond[604]: (root) CMD (run-parts /etc/cron.hourly)

-Скрипт не отрабатывает, хотя в логе пишет, что запускает CMD-ки из этого каталога. Может подскажете в чем ошибка?

25

Re: Crontab не запускает скрипт!

в скрипте укажите полный путь к командам, как писалось в прошлых сообщениях