Enviado em 01/07/2021 - 20:08h
Verificar HD ruim e informar via notify-send para todos os usuários do sistema.
log="/tmp/resultado.log"
fdisk -l | awk '{ print $1}' | grep -i "/" >> /tmp/verifica.log
while read linha; do
montado=$(mount | grep "$linha" | awk '{ print $1}')
if [ -e "$montado" ];then
echo "
=== INÍCIO DA SEÇÃO DE INFORMAÇÕES PARA $montado ===
" | tee >> "$log"
echo "Fabricante: `smartctl -i $montado | grep -i "Model Family" | cut -d: -f2`" >> "$log"
echo "Modelo: `smartctl -i $montado | grep -i "Device Model" | cut -d: -f2`" >> "$log"
echo "Número do serial: `smartctl -i $montado | grep -i "Serial Number" | cut -d: -f2`" >> "$log"
echo "Capacidade: `smartctl -i $montado | grep -i "User Capacity" | cut -d: -f2`" >> "$log"
echo "Taxa de rotação: `smartctl -i $montado | grep -i "Rotation Rate" | cut -d: -f2`" >> "$log"
echo "Suporte a SMART: `smartctl -i $montado | grep -i "SMART support is" | cut -d: -f2`" >> "$log"
echo "Teste: `smartctl -H $montado | grep -i "result:" | cut -d: -f2`" >> "$log"
fi
done < /tmp/verifica.log
who | cut -d" " -f1 | sort -u > /tmp/usuarios.log
mensagem=$(cat $log)
echo "
"
w
# Tem conta de usuário que não tem :0.x aparece com um -
w | awk '{ print $3}'| cut -d":" -f 2 | tail -n 2 > /tmp/telas.log
export DISPLAY=:0
while read usuario; do
echo "
Enviando mensagem para $usuario
"
echo "Possível falha de disco
HD pode ter um problema. $mensagem
"
su "$usuario" -c "notify-send --icon=important -t 800 'Possível falha de disco' 'HD pode ter um problema. $mensagem ' "
# xdg-open "$log" 2> /dev/null
sleep 1
done < /tmp/usuarios.log