kaynak erişilebilir değilse, rsync'i durdur


0

Türleri çoğaltma yapan bir rsync komutu var:

0 0  * * *  rsync -av --delete /media/VIDEOS/ /media/lacie1/backup/videos/

Kaynak erişilebilir değilse (r: çevrimiçi değil / monte edilmediyse) rsync komutunun çalışmasını durdurmanın bir yolu var mı?


Bunun sessiz bir başarısızlık olmasını mı istiyorsun, yoksa başarısız mı olduğunu bilmek istiyor musun?
— user619714

Bunun nedeni, kaynakla ilgili bir sorun olması durumunda, kopyalamayı karıştırmak istemem. Öyleyse, kaynak orada değilse çoğaltmanın gerçekleşmesini durdurun.
— David,

Yanıtlar:


3

Deneyebilirsin

0 0 * * * cd /media/VIDEOS/ && rsync -av --delete /media/VIDEOS/ /media/lacie1/backup/videos/

eğer kaynak yoksa, cd bunu yapmazsa rsync komutunu çalıştırmaz.

Sessizce başarısız olmasını istiyorsanız

0 0 * * * [ -e /media/VIDEOS ] && rsync -av --delete /media/VIDEOS/ /media/lacie1/backup/videos/

Sanırım yedekleme başarısız olduğunda hata mesajından kurtulmak istiyor. Şimdi değişiklik dizini komutunun başarısız olduğunu bildiren bir hata mesajı alacak;)
— Comradin

1
@Comradin: Eğer istediği buysa, çözümler var, ama istediği şey bu değil, ne de ima edildi.
— user619714

Klasör takılıysa test edin:grep -q '/media/VIDEOS' /proc/mounts && rsync ...
— SamK, 20:11

@SamKrieg: Bir kediyi cildin pek çok yolu var, bu da bilmesi gereken bir şey.
— user619714

0

Masaüstünüzün gece yarısı yedeğini alıyor gibi görünüyorsunuz ve cron daemon tarafından başarısız olan yedekleme konusunda spam oluyorsunuz.

Basit ve ham çözüm, iki şekilde yapılabilecek cronu susturmak olacaktır:

0 0 * * * rsync ..> / dev / null 2> & 1

Bu stdout ve stderr komutunu / dev / null'a yönlendirir.

MAILTO ile boş bir e-posta tanımlamak için başka bir çözüm

MAILTO = Kök

0 0 * * * komut dosyası1

MAILTO =

0 0 * * * rsync ..

Bu da senaryoyu susturmalıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.