En el servidor, haz:
tar c file1 file2 dir1 file3... | nc -l 5000
Luego, en el cliente, haz:
nc server 5000 | tar x
O, más lento, pero más seguro:
ssh server tar c file1 file2 dir1 file3... | tar x
Por ejemplo:
$ ssh localhost 'cd /etc; tar c passwd nsswitch.conf' | (d=$(mktemp -d); tar xv -C "$d"; ls -l "$d"; rm -r "$d")
passwd
nsswitch.conf
total 8
-rw-r--r-- 1 muru muru 529 Feb 16 2017 nsswitch.conf
-rw-r--r-- 1 muru muru 2631 Apr 24 18:18 passwd
попробуй
lsblk| awk '$4 ~ /G$/ && $4+0 > 100 {print $1}'
это будет выполнять поиск и фильтрацию одновременно.
$4 ~ /G$/
получить файл с размером в G $4+0 > 100
получить размер более 100G {print $1}
напечатать ИМЯ как правило, вам не нужно использовать grep
и awk
в одном канале.
чтобы получить только диск (и без раздела):фильтрация awk
lsblk| awk '$4 ~ /G$/ && $4+0 > 100 && $6 == "disk" {print $1}'
где
$6 == "disk"
выбрать только столбец с диском чтобы получить только диск (и без раздела):фильтрация lsblk
lsblk --nodeps| awk '$4 ~ /G$/ && $4+0 > 100 {print $1}'
где
--nodeps
:-d, --узлы не печатают ведомые устройства или держатели Вы можете указать желаемую форму вывода изlsblk
:
% lsblk -nblo NAME,SIZE
mmcblk0 15931539456
mmcblk0p1 268435456
mmcblk0p2 15662038528
-b, --bytes
Print the SIZE column in bytes rather than in human-readable format.
-l, --list
Use the list output format.
-n, --noheadings
Do not print a header line.
-o, --output list
Specify which output columns to print. Use --help to get a list of all supported
columns.
Тогда фильтрация упрощается:
% lsblk -nblo NAME,SIZE | awk '$2 > 4*2^30 {print $1}' # greater than 4 GiB
mmcblk0
mmcblk0p2
В вашем случае это будет 100*2^30
для 100 ГБ или 100e9
/ 1e11
для 100 ГБ.
Вы также можете указать lsblk
выводить в формате JSON и выполнять фильтрацию с помощьюjq
:
$ lsblk -Jb | jq -r '..|select(.size? >= 1e11).name'
sda
sda2
Или:
$ lsblk -Jb | jq -r '..|select(.type? == "disk" and.size? >= 1e11).name'
sda
Чтобы ограничить записи типа disk
.
(1e11
составляет 100 ГБ. Замените на107374182400
(или100*1024*1024*1024
)для 100 ГиБ. Из-за округления,lsblk
сам по себе без -b
сообщает 100G для размеров от 99,9278 до 100,0488 ГиБ (по какой-то причине))
С помощью lsblk -OJb
, lsblk
сообщает всю доступную информацию, что позволяет сделать более точный -детальный выбор или вывести более или более релевантную информацию.
Вы также можете получить информацию напрямую от /sys
. Сzsh
:
$ printf '%s\n' /sys/class/block/*(e'[(($(<$REPLY/size) * 512 >= 1e11))]':t)
sda
sda2