Как правильно написать sh для коректной работы в cron?
для бэкапа:
Код:
#!/bin/sh
find /home/backup/* -mtime +30 -exec rm -r {} \;
mkdir -p /home/backup/"$(date '+%F_%T')"
cd /var/www/html/
tar cjf /home/backup/"$(date '+%F_%T')"/vtigercrm.tar.bz2 vtigercrm
mysqldump -uroot -p123QWEasd vtigerdb > /home/backup/"$(date '+%F_%T')"/vtigerdb.sql
Это корректно будет обрабатываться в cron?
для восстановления:
Код:
#!/bin/sh
service apache2 stop
rm -r /var/www/html/vtigercrm
tar -jxf *.tar.bz2 -C /var/www/html/
mysql -uroot -p123QWEasd vtigerdb < ./vtigerdb.sql
service apache2 start
|
некорректно. Под крон надо почти везде прописывать полные пути. Т.е. cd отработает итак, а тот же mysqldump - нет
Но вообще-то самое простое протестировать самому на *nix-машине =) Уж первая-то часть точно безопасна даже на сервере )
|
Цитата:
Цитата mar
а тот же mysqldump - нет »
|
В каком месте? Второй скрипт не под cron, смылс в следующем в папке /home/будет папка restore, а в ней лежать второй скрипт, т.е. нужная папка будет скопированна из /home/backup/ в /home/restore
Такой вариант правильный или нет? Как лучше сделать?
Код:
#!/bin/sh
BACKUPDIR=/home/backup
DAYS=30
BACKUPDATE=`date +%H-%M-%S`
FOLDERDATE=`date +%d.%m.%y`
service apache2 stop
mkdir -p /${BACKUPDIR}/${FOLDERDATE}
cd /var/www/html
tar cjf ${BACKUPDIR}/${FOLDERDATE}/${BACKUPDATE}.crm.tar.bz2 vtigercrm >/dev/null 2>&1
mysqldump -uroot -p123QWEasd vtigerdb > ${BACKUPDIR}/${FOLDERDATE}/${BACKUPDATE}.db.sql
service apache2 start
find $BACKUPDIR/* -mtime +$DAYS -exec rm -r {} \; >/dev/null 2>&1
Код:
#!/bin/sh
mv *crm.tar.bz2 vtigercrm.tar.bz2
mv *db.sql vtigerdb.sql
service apache2 stop
rm -r /var/www/html/vtigercrm
tar -jxf vtigercrm.tar.bz2 -C /var/www/html/
mysql -uroot -p123QWEasd vtigerdb < vtigerdb.sql
service apache2 start
|
Цитата:
Цитата mar
Под крон надо почти везде прописывать полные пути »
|
только тем, кто в кронтабе не указывал PATH
прописать PATH в кронтабе.
альтернативой является страдание типа:
Код:
mysqldump=`/usr/bin/which mysqldump`
tar=`/usr/bin/which tar`
и вызов потом в виде
Код:
${mysqldump} ${parameter}
${tar} parameter1 parameter2...
|
Время: 10:45.
© OSzone.net 2001-