Ответы:
Сначала получите размер удаленного файла в байтах:
$ ssh user@host 'stat -c%s FILENAME'
50000
Подсчитайте 10% от этого числа и скопируйте последние десять процентов:
$ ssh user@host 'tail -c 5000 FILENAME' > DESTINATION
stat -c%s
какое-то преимущество перед du -b
?
ssh user@host 'f=FILENAME; tail -c $(($(stat -c%s $f)/10)) $f' > DESTINATION
stat()
системный вызов, что очень быстро, хотя du
также проверяет все подключенные файловые системы, используемые stat()
перед фактическим файлом. Но это не разница на практике. ⫽ Однако, если вам нужно получить только байты (как в однострочнике в вашем последнем комментарии), тогда запуск stat
будет проще, потому что он не выведет ненужное имя файла, что сделает однострочник короче, чем это было бы с du -b | sed ...
.
rsync
. Почему бы вам просто не загрузить весь файл и не использовать егоrsync
для периодического обновления с сервера? (Файлы журналов также хорошо сжимаются, поэтомуrsync -z
вам нужно всего лишь загрузить 4-5 МБ для всего файла журнала .)