जवाबों:
यह आपको एक ठोस तरीके से प्राप्त करना चाहिए
rsync -RDa0P \
--files-from=<(find sourcedir/./ -mtime -7 -print0) \
. user@B:targetdir/
यह डिवाइस नोड्स, अनुमतियां, टाइमस्टैम्प की प्रतिलिपि बनाता है। मुझे पूरा यकीन है कि -H विकल्प --files-from के साथ सटीक नहीं होगा
rsync -avn --files-from=<(ssh user@A 'find /path/on/A/ -mtime -7 -type f -exec basename {} \;') user@A:/path/on/A/ user@B:targetdir
basename
आपके आदेश में क्या अर्थ है? क्या आप कृपया समझा सकते हैं?
मैंने यह स्क्रिप्ट साइबरटैस्ट की टिप्पणी के आधार पर लिखी है जो एक रिमोट सर्वर से लोकल में सिंक करने के लिए है।
आप स्क्रिप्ट को ड्राई रन के लिए ./script.sh 3
या उसके साथ कॉल कर सकते ./script.sh 3 dry
हैं।
#!/bin/bash
TIME=$1
DRYRUN=$2
if [[ -z $TIME ]]; then
echo "Error: no time argument."
echo "Please enter the number of days to sync."
exit 1
fi
if [[ $DRYRUN = "dry" ]]; then
DRYRUNCMD="--dry-run"
echo "Dry run initiated..."
fi
rsync -avz $DRYRUNCMD --files-from=<(ssh \
user@remote "find path/to/data/ \
-mtime -$TIME ! -name *.mkv -type f \
-exec ls $(basename {}) \;") \
user@remote:. .