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: [email protected]
tel (mob) +380676574197
Skype: marshalenko
JabberID: [email protected]

> 25 янв. 2017 г., в 14:52, Valentin Nechayev <[email protected]> написал(а):
> 
> 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
> [email protected]
> http://mailman.uafug.org.ua/mailman/listinfo/freebsd

_______________________________________________
freebsd mailing list
[email protected]
http://mailman.uafug.org.ua/mailman/listinfo/freebsd

Ответить