Обходной путь:
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…
Это не решение, а обходной путь — локально смонтировать сервер, а затем просто скопировать данные.
sshfs можно использовать для монтирования удаленного каталога:
sudo sshfs -o allow_other,default_permissions user@xxx.xxx.xxx.xxx:/ /mnt/local_directory
Затем используйте
cp -ru
где u обновляет файлы, которые находятся в смонтированном удаленном каталоге, отсутствующими.
Используйте опцию -a
sftp. man sftp
указывает, что это указывает sftp «попытаться продолжить прерванную передачу, а не перезаписывать существующие частичные или полные копии файлов. Если частичное содержимое отличается от передаваемого, то результирующий файл, вероятно, будет поврежден».