LINUX.ORG.RU
ФорумAdmin

скрипт sh


0

1

Господа, прошу простить за детский вопрос, но нужен хелп.

Есть база данных firebird. Необходимо что бы два раза в день был бекап.

Написал простенький sh скрипт, добавил в крон. В линуксе новичок, скрипт не совсем корректно работает. Прошу совета.

#!/bin/sh
DATE='date+%d.%m.%Y..%H:%M'
/opt/firebird/bin/gbak -b -g -v -user *USER* -pas *PAS* /database/namebase.gdb /database/backup/$DATE.bak
tar -czvf /database/backup/$DATE.tar.gz /database/backup/$DATE.bak
sleep 500
rm /database/backup/$DATE.bak
exit 0

>DATE='date+%d.%m.%Y..%H:%M'

DATE=`date +%d.%m.%Y..%H:%M`

sleep 500

Зачем? Не нужно.

gentoo_root ★★★★★
()
tar -czvf /database/backup/$DATE.tar.gz /database/backup/$DATE.bak
sleep 500
rm /database/backup/$DATE.bak

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

gzip /database/backup/$DATE.bak
На выходе будет файл $DATE.bak.gz

schizoid ★★★
()
Ответ на: комментарий от baverman

я где-то читал в интернетах что лучше $( cmd ) а не обратные кавычки

anonymous
()
Ответ на: комментарий от schizoid

Все большое спасибо. Разобрался. Немного переписал скрипт и очень доволен.

 
#!/bin/sh 
BACKUP=/database/backup 
BASEPATH=/database/basemane.gdb 
NOW=$(date +"%d%m%y%H:%M") 
/opt/firebird/bin/gbak -b -g -v -user *USER* -pas *PAS* $BASEPATH/$NOW.bak 
gzip -v /$BACKUP/$NOW.gz /$BACKUP/$NOW.bak 
sleep 60 
echo "Complete"
exit 0

TrikS
() автор топика
Ответ на: комментарий от TrikS

Продолжение банкета. Столкнулся с еще одним вопросом. CentOS 6 minimal. Не могу найти cron. crontab не работает. Где искать. Спасибо.

TrikS
() автор топика
Ответ на: комментарий от TrikS

>Продолжение банкета. Столкнулся с еще одним вопросом. CentOS 6 minimal. Не могу найти cron. crontab не работает. Где искать. Спасибо.

Привыкай пробегаться по системе при помощи locate, find, whereis и apropos в поиске таких вещей.

Othniel
()
Ответ на: комментарий от TrikS

Есть небольшая проблема с cron. CentOS 6. Crond запущен.

Задача, необходимо что бы выполнялся скрипт каждый день по следующим часам: 7,12,17,22. В crontab указал * 7,12,17,22 * * * /database/back.sh

не запускается. в чем проблема? Скрипт рабочий.

TrikS
() автор топика
Ответ на: комментарий от anonymous

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

TrikS
() автор топика
Ответ на: комментарий от TrikS

> * 7,12,17,22 * * * /database/back.sh

Это будет запускаться в 7, 12, 17 и 22 часах ежеминутно.

В каком файле это вписал? В /etc/crontab надо ещё пользователя указать.

sin_a ★★★★★
()
Ответ на: комментарий от TrikS
cat /etc/crontab
# 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

Шестое поле.

sin_a ★★★★★
()
Ответ на: комментарий от TrikS

Не запускается, зараза...

Вот полное содержание файла /etc/crontab

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

30 21 * * * root sh /database/back.sh 

TrikS
() автор топика
Ответ на: комментарий от sin_a

Естественно перезапускал. Попробую... В любом случае спасибо за участие))) Отпишусь что получилось)

TrikS
() автор топика
Ответ на: комментарий от TrikS

* * * * * root /bin/date >> /tmp/check.cron.text

неа, файл не создается =(

Мне кажется я что-то делаю не так...

yum install crontab

после в файле /etc/crontab указал то что писал выше.

service crond restart

усе равно не работает.

TrikS
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.