Используйте проверку % для пути к конкретному серверу и сравнивайте с пороговым значением, если оно больше, чем хранится в файле

What sort of command can locate the device file used by a USB. As in the directory it creates to open the actual USB.

Вы можете просмотреть список блочных устройств, используя:

$ lsblk

Пример вывода:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 119.2G  0 disk 
|-sda1   8:1    0 488.3M  0 part /efi
|-sda2   8:2    0 109.4G  0 part /
`-sda3   8:3    0   9.4G  0 part [SWAP]
sdb      8:16   0 931.5G  0 disk 
`-sdb1   8:17   0 931.5G  0 part /media/storage
sdc      8:32   1   7.4G  0 disk 
`-sdc1   8:33   1   7.4G  0 part 

Имя — это блочное устройство, строки с отступом под соответствующим блочным устройством — это разделы, столбец точки монтирования показывает, где они смонтированы в файловой системе. (Если они смонтированы.)

В этом примере второй жесткий диск подключен к /media/storage

Существует также USB-устройство (sdc ), которое в настоящее время не подключено.

Блочные устройства и их разделы находятся в папке /dev/.

См.:https://ss64.com/bash/lsblk.html

how do I mount a filesystem to a directory of my choice e.g. "TechCategory"

Вы можете использовать команду mount для монтирования раздела в файловую систему:

$ mount /dev/sdc1 /media/TechCategory

Если мы сейчас вернемся к нашему lsblk,мы видим:

sdc      8:32   1   7.4G  0 disk 
`-sdc1   8:33   1   7.4G  0 part /media/TechCategory  <-- USB is now mounted here.

См.:https://ss64.com/bash/mount.html

and check the filesystem for errors?

Вы можете использовать команду badblocks, см.:Как вы используете badblocks?

Пример:

badblocks -sv /dev/sdc

Can I add a line to /etc/fstab to ensure that the filesystem can be easily mounted in the future?

Я бы рекомендовал убедиться, что вы понимаете, как работает файл /etc/fstab, прежде чем редактировать его.

$ man fstab 

Еще один ответ по обмену стеками, Подключить жесткий диск при запуске -вверх

1
28.08.2021, 21:11
1 ответ

Вы сохраняете вывод в main.csv, но перезаписываете файл на каждой итерации цикла. Вместо этого переместите перенаправление сразу после done.

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

#!/bin/sh

while IFS=, read -r remote pathname user
do
    ssh -n -l "$user" "$remote" "df -h '$pathname'" |
    awk -v h="$remote" -v p="$pathname" '
        NR == 2 {
            if (($5 + 0) > 60)
                level="WARNING"
            else
                level="INFO"
        
            printf "%s: %s disk usage for %s on %s\n", level, $5, p, h
        }'
done <fi.csv >output.txt

Здесь мы просто читаем ввод с разделителями-запятыми -из fi.csv, вызываем du -hдля интересующего нас пути, затем локально анализируем результат с помощью awk. Вывод записывается в output.txt.

Мы знаем, что получаем две строки из df, поэтому делаем так, чтобы код awkзаботился только о второй строке(NR == 2). Затем мы выводим сообщение, показывающее текущий процент использования диска, с префиксом WARNINGили INFOв зависимости от того, превышает ли процент 60 или нет.

2
29.08.2021, 08:22

Теги

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