grabber/grabber.sh
2025-12-28 15:12:02 +01:00

125 lines
3.7 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
DIR=/opt/grabber
SUCCESS_LOG=/var/log/grabber/grabber-success.log
ERROR_LOG=/var/log/grabber/grabber-error.log
SUM="$DIR/summary.txt"
# Affichage du texte de démarrage
tee $SUCCESS_LOG $ERROR_LOG <<EOF1
+++++++++++++++++++++++++++++++++++++++
+ +++++
+ Welcome to Grabber +++++
+ +++++++
+++++++++++++++++++++++++++++++++++++++
Récupération des informations sur les paquets..
-------------------------------------------------
EOF1
# Fichier /etc/apt/sources.list
tee -a $SUCCESS_LOG $ERROR_LOG <<EOF2
Copie du fichier de configuration /etc/apt/sources.list
EOF2
cat /etc/apt/sources.list 2> >(tee -a $ERROR_LOG) >$DIR/sources-list.file \
&& echo "[OK]: Fichier sources-list.file généré" |tee -a $SUCCESS_LOG \
|| echo "[ECHEC]: Erreur à la génération de sources-list.file" |tee -a $ERROR_LOG
# Commande apt list --installed
tee -a $SUCCESS_LOG $ERROR_LOG <<EOF3
Récupération de la liste des paquets installés..
--------------------------------------------------
EOF3
apt list --installed 2> >(tee -a $ERROR_LOG) >$DIR/apt-installed.cmd \
&& echo "[OK]: Fichier apt-installed.cmd généré" |tee -a $SUCCESS_LOG \
|| echo "[ECHEC]: Erreur à la génération de apt-installed.cmd" |tee -a $ERROR_LOG
# array
declare -a DEVICES
mapfile -t DEVICES < <(lsblk -dn -o NAME |grep -v loop)
declare -A FILES
FILES=(
"sources_list.file" "/etc/apt/sources.list"
"passwd.file" "/etc/passwd"
"group.file" "/etc/group"
"ssh_config.file" "/etc/ssh/ssh_config"
)
#treat_file() {
# echo "Les arguments: $@"
# cat $2 |grep -v '^#' | grep -v '^$' >>$DIR/$1
#}
#treat_file sources_list.file /etc/apt/sources.list
#for file in ${!FILES[@]}; do
# treat_file $file ${FILES[$file]}
#done
#cat /etc/ssh/ssh_config > $DIR/ssh_config.file
#cat /etc/passwd > $DIR/passwd.file
#cat /etc/group > $DIR/group.file
#lspci -nn > $DIR/lspci.cmd
#lsusb > $DIR/lsusb.cmd
#apt list --installed > $DIR/apt.cmd
#systemd-analyze > $DIR/systemd-analyze.cmd
#systemd-analyze blame | head -n 10 > $DIR/systemd-blame.cmd
#lscpu > $DIR/lscpu.cmd
#lshw-gtk > $DIR/lshw-gtk.cmd
#inxi > $DIR/inxi.cmd
#lsmem > $DIR/lsmem.cmd
hardware() {
declare -A PARTITIONS_BY_DISK
for disk in ${DEVICES[@]}; do
disk_path=$(printf '/dev/%s' "$disk")
disk_parts=$(lsblk -nr -o PKNAME,PATH $disk_path |grep -vE "^ " |cut -d \ -f2)
PARTITIONS_BY_DISK[$disk]=${disk_parts[@]}
done
echo " "
echo "INFOS ORDINATEUR"
echo "Combien de disques sur l'ordinateur ? ${#DEVICES[@]}"
echo "keys: ${!PARTITIONS_BY_DISK[@]}"
echo "values: ${PARTITIONS_BY_DISK[@]}"
echo DEVICES=${DEVICES[@]} >$SUM
for disk in ${!PARTITIONS_BY_DISK[@]}; do
echo "PARTS_$disk=$(printf '%s ' ${PARTITIONS_BY_DISK[$disk]})" >>$SUM
done
echo "[HARDWARE]" >>$SUM
echo "CPU=$(lscpu -eMODELNAME |tail -n1)" >>$SUM
echo "CPU_ID=$(sudo dmidecode -t processor |grep ID |cut -d: -f2)" >>$SUM
RAM_SIZE=$(lsmem |grep "Mémoire partagée" |cut -d: -f2 |sed 's/\ //g')
RAM_GEN=$(sudo dmidecode -t memory |grep Type: |grep -v Unknown |tail -n1 |cut -d: -f2 |sed 's/\ //')
echo "RAM=$RAM_SIZE $RAM_GEN" >>$SUM
echo "RAM_SIZE=$RAM_SIZE" >>$SUM
echo "RAM_GEN=$RAM_GEN" >>$SUM
sizes=$(lsblk -dnb |grep -v loop |grep -v boot |tr -s " " |cut -d \ -f4) >>$SUM
STOCKAGE_TOTAL=0
for SIZE in ${sizes[@]};do
STOCKAGE_TOTAL+=$SIZE
done
STOCKAGE_TOTAL=$(numfmt --to iec $STOCKAGE_TOTAL)
echo "STOCKAGE_TOTAL=$STOCKAGE_TOTAL" >>$SUM
}
hardware
software() {
echo "[SOFTWARE]" >>$SUM
echo "OS=$(lsb_release -a |grep Description |cut -f2)" >>$SUM
echo "ARCH=$(uname -m)" >>$SUM
echo "DESKTOP=$XDG_CURRENT_DESKTOP" >>$SUM
echo "WM=$XDG_SESSION_TYPE" >>$SUM
echo "KERNEL=$(uname -r)" >>$SUM
}
software