Только mgget новые файлы с smbclient

Однострочная команда awk:

awk -v P=-1 '$2<104 {if ($1>P+1)N=$1;P=$1;print $1,$2>"file"N".tmp"}'

Дает результат (, если вы не возражаете против имени файла)

==> file1.tmp <==
1   102.0184
2   100.2430
3   103.9029
4   102.7495
5   102.8825

==> file7.tmp <==
7 103.0479
8 101.2433

==> file10.tmp <==
10 101.5879
0
08.11.2019, 12:02
1 ответ

Вы можете использовать бит архива (, предполагая, что никто другой не возится с битами архива в интересующих вас файлах ).

Windows устанавливает этот бит при каждом создании или изменении файла.

smb: \> archive 2

Сообщит SMB, что нужно работать только с файлами, для которых установлен этот бит, и сбрасывать его на ноль по завершении.

Так что это поможет с mget. Для mputвам нужно противоположное --, и бит архива на стороне сервера не поможет вам увидеть, какие из ваших собственных файлов были изменены, поэтому это решение работает только для mget.

Эта операция (получения только измененных файлов и сброса их архивных битов )достаточно распространена, чтобы иметь собственную опцию командной строки. См. вариант -Tили --tarс флагамиc(создать )иg(инкрементный ).

0
24.04.2020, 12:49

Теги

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