[freebsd] Повторный запуск скрипта в cron
Andrey Marshalenko
marshall at marshall.kiev.ua
Wed Jan 25 20:56:24 EET 2017
Hi.
Можно реализовать через файл блокировки (в примере ниже переменная LOCK). Т. е. при запуске скрипта создается файл, который не удаляется если задание не завершено (например первый бакап длится больше заданного интервала вркмкни).
Пример бакапа домашних папок пользователей по времени (типа «Машина времени»):
# cat rbackup.sh
=============================================================
#!/bin/sh
date=`date "+%Y-%m-%d-%H%M%S"`
rsync=/usr/local/bin/rsync
LOCK=/var/spool/lock/rbackup.lock
LOG=/var/log/rbackup.log
SRC=/home/
TARGET=/var/data/backups/homes/$date
P_TARGET=/var/data/backups/homes/Latest
if [ -f $LOCK ]; then
exit 0
fi
touch $LOCK
date >> $LOG
mkdir -p $TARGET
$rsync -auvAHX --link-dest=$P_TARGET $SRC $TARGET >>$LOG 2>&1
rm -f $P_TARGET
ln -s $TARGET $P_TARGET
rm $LOCK
exit 0
=============================================================
__
With best regards,
Andrey Marshalenko.
System & Network Administrator
AM1000-UANIC
mailto: marshall at marshall.kiev.ua
tel (mob) +380676574197
Skype: marshalenko
JabberID: marshall at marshall.kiev.ua
> 25 янв. 2017 г., в 14:52, Valentin Nechayev <netch at netch.kiev.ua> написал(а):
>
> hi,
>
> Wed, Jan 25, 2017 at 14:49:46, krylov wrote about "[freebsd] Повторный запуск скрипта в cron":
>
>> Есть задача в cron'e rsync'ом делать зеркало раз в минуту
>> Как правильно обезопаситься от повторного запуска скрипта?
>>
>> нашел https://habrahabr.ru/post/114622/
>> но в портах нет lockrun
>>
>> flock кошерно использовать?
>
> Фрёвая тулза зовётся lockf, и таки да, кошерно и прельстиво.
>
>
> -netch-
> _______________________________________________
> freebsd mailing list
> freebsd at uafug.org.ua
> http://mailman.uafug.org.ua/mailman/listinfo/freebsd
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.uafug.org.ua/pipermail/freebsd/attachments/20170125/bd13014a/attachment.html>
More information about the freebsd
mailing list