Руководство поставило задачу напечатать отчеты по конфигурации и состоянии компьютеров. Отчет включает в себя:
Название материнки
Кратко о процесоре(название, архитектура, сокет, частота, кол. ядер, )
Количество слотов памяти
Количество установленных плашек
Общий объем памяти
напряжение по линиям 3.3 5 12
информация о жестких дисках (модель, объем, S.M.A.R.T.)
сетевые устройства
Сейчас информация собирается вручную, потом перепечатывается уже в файл. На один компьютер уходит более часа монотонного труда. Отсюда вопрос
Как автоматизировать создание отчет кастомизацией вывода?
Ответ
Вот например. Без вольтажа.
#!/bin/bash
# version:0.03
echo -e "\"cpu\"
{
`dmidecode -t processor | grep -E "(Version|Core Count|Socket|Max Speed)"`
}
\"mb\"
{
`echo "$(dmidecode -t baseboard | grep "Manufacturer" | sed "s/\tManufacturer: //") - $(dmidecode -t baseboard | grep "Product Name" | sed "s/\tProduct Name: //")"`
}
\"gpu\"
{
`lspci | grep VGA | sed \"s/^.*: //g\"`
}
\"hdd\"
{
`egrep -o \"Model.*$\" /proc/scsi/scsi`
}
\"ram\"
{
`dmidecode -t 17 | nawk '{if ($0==\"Memory Device\") I+=1 ; if ($1==\"Size:\") {sub(/\t/,\"\",$0) ;SIZE[I]=$0 } ; if ($1==\"Speed:\") { sub(/\t/,\"\",$0) ; SPEED[I]=$0 }; ; if ($1==\"Type:\") { sub(/\t/,\"\",$0) ; TYPE[I]=$0 } } END { for(i=1;i<=I;i++) print SIZE[i]\" \"SPEED[i]\" \"TYPE[i]}'`
}
\"os\"
{
`cat /etc/issue.net`
}
\"hostname\"
{
`hostname`
}
\"mac_addr\"
{
`ip a | awk '/link\/ether/ {print $2}'`
}
" | sed 's/^$//g'
Комментариев нет:
Отправить комментарий