В два шага (для простоты, хотя эти шаги определенно могут быть объединены ).
Первая передача "маленьких" файлов:
find /source/path -type f -size -100M -print0 |
rsync -av -0 --files-from=- / user@server:/destination/
Затем перенесите «большие» файлы, имена которых совпадаютpattern
:
find /source/path -type f -size +99M -name 'pattern' -print0 |
rsync -av -0 --files-from=- / user@server:/destination/
Это, однако, не проверено.
-print0
в GNUfind
(и другие )будут печатать найденные имена с разделителем nul
, а -0
с rsync
заставят --files-from-
интерпретировать этот стандартный входной поток определенным образом.
Пути к файлам, прочитанные с помощью --files-from
, должны относиться к указанному источнику, поэтому я использую /
в качестве источника в rsync
(. Я предполагаю, что /source/path
в find
является абсолютным путем ). ].
Комбинированный вариант (также не тестировался):
find /source/path -type f \
\( -size -100M -o -name 'pattern' \) -print0 |
rsync -av -0 --files-from=- / user@server:/destination/
Более одной допустимой pattern
строки для «больших» файлов:
find /source/path -type f \
\( -size -100M -o -name 'pattern1' -o -name 'pattern2' -o -name 'pattern3' \) -print0 |
rsync -av -0 --files-from=- / user@server:/destination/
Каждое pattern
может быть чем-то вроде *.mp4
или любым другим расширением файла, которое вы используете. Обратите внимание, что их необходимо заключать в кавычки, как в -name '*.mp4'
.
Вы можете запустить Xvnc -inetd -query localhost
как непривилегированный не -пользователь root из systemd или xinetd. Вам нужен менеджер входа в систему, такой как gdm или lightdm, который прослушивает XDMCP на интерфейсе обратной связи.
Таким образом, вы всегда сможете подключиться к одному и тому же порту и создать новый сеанс рабочего стола. Конечно, если вы отключитесь, сеанс завершится.