Скрипты sh: подставить диск в строку

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Fast_Deer
мл. сержант
Сообщения: 126
Зарегистрирован: 2013-01-09 10:56:34

Скрипты sh: подставить диск в строку

Непрочитанное сообщение Fast_Deer » 2015-06-25 13:56:21

Всем здравствуйте!
Занялся писательством для собственных серваков скрипта бекапа. Захотелось некой универсальности - чтоб один скрипт на несколько серваках работал без допиливания руками каждый раз. Собственно сам скрипт есть и работает, но проблема состоит в том, что хотелось бы опросить жесткий диск на предмет имени партиции по условию (к примеру, нужен диск с корневой директорией, или диск подмонтированный в /home) и на выходе получить строку вида /dev/ada0p1.
Может кто-нибудь подсказать (с примерами, для лучшего понимания) как это можно реализовать?
Для справки: Стоит FreeBSD 10.1, shell: sh

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Fast_Deer
мл. сержант
Сообщения: 126
Зарегистрирован: 2013-01-09 10:56:34

Скрипты sh: подставить диск в строку

Непрочитанное сообщение Fast_Deer » 2015-06-29 11:29:07

Решил я данную проблему, хотя по моему и не совсем красиво. Для тех кому интересно:

Код: Выделить всё

mount | grep '/opt' | fold -s -w 12 | sed q
где
mount - просмотр смонтированных разделов (причем раздел / всегда идет первым);
grep '/opt' - вывод только нужного раздела (к примеру '/opt');
fold -s -w 12 - разрыв строки по пробелу и перенос через 12 символов. Здесь как раз получаем нужный раздел в первой строке
sed q - оставляем только первую строку

FiL
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2010-02-05 0:21:40

Скрипты sh: подставить диск в строку

Непрочитанное сообщение FiL » 2015-06-29 20:30:22

не стану утверждать за фрю, но на линуксах / не всегда будет первым.
А в сложных случаях вообще не факт, что раздел смонтирован на что-то видa /dev/ada0p1

Аватара пользователя
Fast_Deer
мл. сержант
Сообщения: 126
Зарегистрирован: 2013-01-09 10:56:34

Скрипты sh: подставить диск в строку

Непрочитанное сообщение Fast_Deer » 2015-06-30 10:39:28

Меня больше интересовало строка для получения данного вида, чтобы "скормить" это dump. А зная имя каталога куда монтируется нужный диск с помощью данного примера можно получить имя девайса. И не важно какой будет у него вид (это лишь для примера было написано) - лишь бы dump его читал.
Нужно это для того чтоб при одинаковой разбивке дисков на разных серваках (да и просто после переустановки) воткнуть готовый скрипт и (образно) "забыть про него", а не затачивать каждый раз под конкретный сервак

Не скажу за все линуксы, так как под рукой лишь урезанные версии (роутер, медиаплеер, NAS), но на NAS`е rootfs идет первым:

Код: Выделить всё

-bash-3.2$ mount
rootfs on / type rootfs (rw)
ubi0:rootfs on / type ubifs (rw)
/proc on /proc type proc (rw)
/sys on /sys type sysfs (rw)
/proc/bus/usb on /proc/bus/usb type usbfs (rw)
......
-bash-3.2$ cat /proc/version
Linux version 2.6.22.18-Netgear ......
на роутере тоже самое: rootfs идет первым

FiL
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2010-02-05 0:21:40

Скрипты sh: подставить диск в строку

Непрочитанное сообщение FiL » 2015-06-30 14:06:03

Обрати внимание на то,что там замаунчено на /. Сомнительно, что дампу можно будет скормить rootfs

Аватара пользователя
Fast_Deer
мл. сержант
Сообщения: 126
Зарегистрирован: 2013-01-09 10:56:34

Скрипты sh: подставить диск в строку

Непрочитанное сообщение Fast_Deer » 2015-06-30 17:03:37

ничего не поделаешь - согласен.

FiL
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2010-02-05 0:21:40

Скрипты sh: подставить диск в строку

Непрочитанное сообщение FiL » 2015-06-30 17:47:20

Код: Выделить всё

root@proxmox:~# mount |head
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=3081495,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=2467536k,mode=755)
rpool/ROOT/pve-1 on / type zfs (rw,relatime,xattr,noacl)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=9758500k)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
root@proxmox:~# uname -a
Linux proxmox 2.6.32-37-pve #1 SMP Wed Feb 11 10:00:27 CET 2015 x86_64 GNU/Linux

Код: Выделить всё

[root@gb1 ~]# mount |head
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,size=8206524k,nr_inodes=2051631,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (rw,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
[root@gb1 ~]# uname -a
Linux gb1.tchlab.org 3.10.0-229.4.2.el7.x86_64 #1 SMP Wed May 13 10:06:09 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
NНу и так далее... это по поводу того, что / всегда первым.