Если он только добавляется к (а не изменяется в середине), вы можете просто запустить tail -f
на нем. Он должен дождаться любых новых добавленных данных и распечатать их, и вы можете указать ему, с какой позиции начинать:
tail -c 0 -f datafile # start at the current file end
tail -c +123 -f datafile # start at byte 123
Чтобы фактически переместить данные куда-нибудь, должен работать конвейер до ssh
:
Итак если на удаленном конце уже есть первые 123456 байтов:
tail -c +123456 -f datafile | ssh user@somehost 'cat >> datafile.copy'
(Хотя, конечно, вам нужно проверить размер файла на удаленном компьютере перед запуском конвейера.)
Если вместо этого у вас есть изменения в середине файл, вам понадобится какой-то уровень ведения журнала в самой программе. Снимки файловой системы могут подойти, но интервал в одну секунду может быть слишком сложным, особенно если вам все равно придется сканировать файл на предмет изменений.
На изображении показано, что «другая» группа имеет разрешения на чтение; если вы попытаетесь добавить echo testline >> useradd
или выполнить ./ useradd
, это даст вам отказ в разрешении. Если вы хотите удалить разрешения на чтение для «других» пользователей, вы можете использовать sudo chmod или useradd
Я считаю, что это потому, что разрешение на файл useradd установлено на rw-r - r -
, что дает всем пользователям доступ на чтение.