2013-11-21 6 views
0

Я создал резервное решение для своей работы по резервному копированию компьютеров под управлением Windows XP/7, которые входят в офис, загрузившись в Lubuntu с USB-устройства и запуская программу Java, которая поддерживает резервную копию сети.Обнаружение самого большого раздела в Linux

Проблема в том, что самый большой раздел (C: Диск в Windows) может быть как на sda1, sda2, sdb1, sdb2 в зависимости от компьютера. Я использую кучу операторов if...else, чтобы выяснить, какой из них нужно установить, но он имеет проблемы, если на самом деле имеется более 1 раздела.

Мне нужно, чтобы найти самый большой раздел на компьютере и его авто монтировать при запуске.

Возможно ли это?

ответ

3

Предлагаю вам попробовать lsblk от util-linux. Что-то вроде

lsblk | grep part | awk '{print $4 " " $1}' | sort | head -n 1 
+0

Только то, что я искал, спасибо – MJ93

0

df -h даст вам что-то вроде this-

Filesystem     Size Used Avail Use% Mounted on 
/dev/mapper/vg_base-lv_root 28G 4.8G 22G 19%/
tmpfs      814M 176K 814M 1% /dev/shm 
/dev/sda1     485M 120M 340M 27% /boot 

Вы могли бы труба это AWK и {print $2}. Затем выполните некоторые базовые сценарии оболочки, чтобы узнать номер строки с размером MAX. Используйте $ 1 из awk на этой строке, чтобы получить раздел.

+0

Вы, вероятно, не следует использовать '-h' вариант, так как это трудно сделать арифметику в AWK, когда номера имеют' 'M' и G' суффиксы. – Barmar

+2

Другая проблема с использованием 'df' для этого заключается в том, что он ставит файловую систему и атрибуты в разные строки, когда путь файловой системы длинный. – Barmar

+0

Правда и правда. Но довольно просто для большинства случаев, нет? :) – erbdex

Смежные вопросы