sftp put — эквивалент rsync

Обходной путь:

ls -l `tty` | awk '{print $3}'

, который работает как замена who am i | awk '{print $1}'. Пояснение ниже:

Во многих системах "who am i" эквивалентно "who -m". Проблема здесь в том, что с некоторыми терминалами "who -m" ничего не возвращает!

Пример #1 запуск с терминала xfce4 -

Pegasus ~ # whoami
root
Pegasus ~ # who am i
thomas   pts/1        2017-08-19 11:15 (:0.0)
Pegasus ~ # who -m
thomas   pts/1        2017-08-19 11:15 (:0.0)
Pegasus ~ # who
thomas   tty8         2017-08-19 10:18 (:0)
thomas   pts/1        2017-08-19 11:15 (:0.0)
thomas   pts/5        2017-08-19 16:16 (:0.0)
Pegasus ~ # who am i | awk '{print $1}'
thomas
Pegasus ~ # 

но Пример #2 из гнома -терминал (тот же компьютер, те же команды)

Pegasus ~ # whoami
root
Pegasus ~ # who am i
Pegasus ~ # who -m
Pegasus ~ # who
thomas   tty8         2017-08-19 10:18 (:0)
thomas   pts/1        2017-08-19 11:15 (:0.0)
thomas   pts/5        2017-08-19 16:16 (:0.0)
Pegasus ~ # 

Похоже, это следствие того, что терминал gnome -не добавляет записи utmp…

0
28.11.2019, 16:05
2 ответа

Это не решение, а обходной путь — локально смонтировать сервер, а затем просто скопировать данные.

sshfs можно использовать для монтирования удаленного каталога:

sudo sshfs -o allow_other,default_permissions user@xxx.xxx.xxx.xxx:/ /mnt/local_directory

Затем используйте

cp -ru

где u обновляет файлы, которые находятся в смонтированном удаленном каталоге, отсутствующими.

0
12.10.2020, 16:39

Используйте опцию -asftp. man sftpуказывает, что это указывает sftp «попытаться продолжить прерванную передачу, а не перезаписывать существующие частичные или полные копии файлов. Если частичное содержимое отличается от передаваемого, то результирующий файл, вероятно, будет поврежден».

0
21.03.2021, 12:36

Теги

Похожие вопросы