Bagaimana saya bisa membuat rsync mengabaikan file yang hilang?


9

Saya menjalankan perintah seperti berikut ini ke beberapa sistem yang berbeda:

$ rsync -a -v foo@machine.company.com:'/path/to/first/*.log path/to/second.txt' /dest/folder/0007/.

Terkadang * .log tidak ada, dan itu OK, tetapi rsync menghasilkan kesalahan berikut:

receiving file list ... rsync: link_stat "/path/to/first/*.log" failed: No such file or directory (2)
done

Apakah ada cara untuk menekan itu? Satu-satunya cara yang bisa saya pikirkan adalah menggunakan filter sertakan dan singkirkan, yang sepertinya merupakan PITA bagi saya. Terima kasih!

Jawaban:


10

Saya pikir jawaban atas pertanyaan tersebut paling baik dijelaskan dalam jawaban ini:

https://stackoverflow.com/a/27637277/1236128

--ignore-missing-args

Sayangnya, hanya versi yang lebih baru yang memiliki fungsi ini. Saya menjalankan RHEL 7 dengan rsync 3.0.9, yang sepertinya tidak memiliki opsi ini.


2

Untuk memperjelas, Anda hanya ingin 'tidak melihat' kesalahannya? Untuk itu, Anda bisa mengarahkan Output Kesalahan Standar, tetapi Anda mungkin akan melewatkan kesalahan yang lebih serius yang mungkin ingin Anda ketahui.

Contoh Keluaran Kesalahan Pengalihan

rsync -a -v foo@machine.company.com:'/path/to/first/*.log path/to/second.txt' /dest/folder/0007/ 2>/dev/null

Jika Anda hanya ingin melewatkan kesalahan pada file yang tidak ada, Anda tidak dapat mengubah filter rsync * .log dan Anda ingin menghindari penggunaan include, Anda bisa membungkusnya dalam skrip untuk melanjutkan berdasarkan pada kondisi.

Contoh Skrip

#!/bin/sh
# Script to Handle Rsync based on Log File Existence
if [ "$(ls -A /path/to/first/*.log > /dev/null > 2&1)" ]; then
     # Log Exists Use This Rsync
    rsync -a -v foo@machine.company.com:'/path/to/first/*.log path/to/second.txt' /dest/folder/0007/
else
    # Log Does Not Exist Use This Rsync
    rsync -a -v foo@machine.company.com:'path/to/second.txt' /dest/folder/0007/
fi

Semoga saya bisa membantu.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.