for f in `ssh $SSHCRED "~/file-list.sh"`
do
rsync --progress --times --partial --append --rsh=ssh -r -h --remove-sent-files $SSHCRED:$f $OUTDIR
done
Это то, чем я занимаюсь сегодня.
Вместо этого я хотел бы сделать это, отправив вывод из ssh $SSHCRED "~/file-list.sh"
прямо в rsync. Это должно быть быстрее, и я могу легко прервать только одну операцию rsync.
Но я вижу в этом как минимум одну проблему: удаленный скрипт генерирует список файлов с абсолютными путями. Чтобы rsync работал, я думаю, мне нужно добавлять учетные данные SSH перед каждым путем, например:
user@host:/path/to/file1
user@host:/path/to/file2
user@host:/path/to/file3
Это возможно?
Создайте список файлов и передайте их в rsync с --files-from=FILE
вариант:
rsync --your-options --files-from=filelist.txt user@host:/basedir targetdir
Это должно быть много быстрее, чем вызывать rsync для каждого файла.