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.