backup.sh + cron

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Volodymyr
лейтенант
Сообщения: 614
Зарегистрирован: 2008-06-17 16:04:56
Откуда: Ukraine, Lviv
Контактная информация:

backup.sh + cron

Непрочитанное сообщение Volodymyr » 2008-12-16 19:15:27

Написал вот скрипт для резервного копирования файлов хостинга.

Код: Выделить всё

!/bin/sh
cd /home/hosting/
for each in `ls`;
    do tar cf /backup/`date "+%Y-%m-%d-%H:%M:%S"`.$each.tar --exclude=$each/common --exclude=$each/error_log --exclude=%%*.tpl.php $each
done;
find /backup/*.tar -ctime +60m -exec rm -f {} \;
Если запускать с консоли, работает отлично. А вот с cron`а не запускается совсем, в логе ничего нету. В crontab для теста поставил на каждые 10 минут.

Код: Выделить всё

*/10    *       *       *       *       root    /root/backup.sh

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Гость
проходил мимо

Re: backup.sh + cron

Непрочитанное сообщение Гость » 2008-12-16 20:03:22

PATH? Или запусти его внутри блока так

Код: Выделить всё

#! /bin/sh

# включаем xtrace
set -x
{
	# твой код

# логгируем xtrace в /tmp/backup.sh.log
} >/tmp/${0##*/}.log 2>&1
# выключаем xtrace
set +x
кстати, `ls` можешь заменить на *.

Аватара пользователя
Volodymyr
лейтенант
Сообщения: 614
Зарегистрирован: 2008-06-17 16:04:56
Откуда: Ukraine, Lviv
Контактная информация:

Re: backup.sh + cron

Непрочитанное сообщение Volodymyr » 2008-12-16 20:43:20

С * не взлетело. Но в общем пока ждал ответа начало работать. Может что-то в кроне намутил. Переставил на 3 ночи, посмотрим как сработает :)

Аватара пользователя
Volodymyr
лейтенант
Сообщения: 614
Зарегистрирован: 2008-06-17 16:04:56
Откуда: Ukraine, Lviv
Контактная информация:

Re: backup.sh + cron

Непрочитанное сообщение Volodymyr » 2008-12-17 13:25:58

Работает :)

Решил вот немного подправить для удобства.

Код: Выделить всё

!/bin/sh

backup_dir="/backup"
hosting_dir="/home/hosting"
life_time=14d

checkdir ()
{
    if [ ! -d $1 ]
    then
        mkdir $1
        chmod 700 $1
    fi
}

cd $hosting_dir

for host in `ls`
do
    checkdir $backup_dir/$host
    tar cf $backup_dir/$host/`date "+%Y-%m-%d.%H:%M:%S"`.$host.tar --exclude=$host/common --exclude=$host/error_log --exclude=%%*.tpl.php $host
done

checkdir $backup_dir/ad6s1a.root
sync && sync && dump -0aLu -C 16 -f - / > $backup_dir/ad6s1a.root/.`date "+%Y-%m-%d.%H:%M:%S"`.ad6s1a.root.hdd
checkdir $backup_dir/a6s1f.usr
sync && sync && dump -0aLu -C 16 -f - /usr > $backup_dir/a6s1f.usr/`date "+%Y-%m-%d.%H:%M:%S"`.a6s1f.usr.hdd
checkdir $backup_dir/ad6s1h.var
sync && sync && dump -0aLu -C 16 -f - /var > $backup_dir/ad6s1h.var/`date "+%Y-%m-%d.%H:%M:%S"`.ad6s1h.var.hdd

find $backup_dir/*.tar -mtime +{$life_time} -delete
find $backup_dir/*.hdd -mtime +{$life_time} -delete

Аватара пользователя
Volodymyr
лейтенант
Сообщения: 614
Зарегистрирован: 2008-06-17 16:04:56
Откуда: Ukraine, Lviv
Контактная информация:

Re: backup.sh + cron

Непрочитанное сообщение Volodymyr » 2008-12-19 18:50:02

Ошибка в по которой не запускался скрипт - неправильные пути :st:

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: backup.sh + cron

Непрочитанное сообщение zg » 2008-12-19 18:55:08

Volodymyr писал(а):Ошибка в по которой не запускался скрипт - неправильные пути :st:
это ещё из названия темы было понятно - /usr/local/bin по умолчанию не прописан в кроне в PATH, но активно используется в скриптах :smile:
ещё правда бывает, что забывают переходить в папку, где лежит скрипт, но несколько реже.

Аватара пользователя
Pez!
старшина
Сообщения: 436
Зарегистрирован: 2008-01-13 20:02:24
Откуда: москва матушка

Re: backup.sh + cron

Непрочитанное сообщение Pez! » 2009-01-01 3:58:50

Здравствуйте, а обьясните пожалуйста, что значит вот эти строки

Код: Выделить всё

for host in `ls`
do
    checkdir $backup_dir/$host
Всёравно все умрут, какая разница....и только серваки с фряхой будут работать ещё некоторое время после.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: backup.sh + cron

Непрочитанное сообщение zg » 2009-01-02 9:59:54

Pez! писал(а):что значит вот эти строки
цикл по текущим папкам