grabber/grabber.sh
2025-11-28 16:59:23 +01:00

99 lines
2.6 KiB
Bash
Executable File

#!/bin/bash
DIR=/opt/grabber
SUCCESS_LOG=/var/log/grabber/grabber-success.log
ERROR_LOG=/var/log/grabber/grabber-error.log
# Affichage du texte de démarrage
tee $SUCCESS_LOG $ERROR_LOG <<EOF1
+++++++++++++++++++++++++++++++++
Démarrage du script 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
# 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
# Commande array
tee -a $SUCCESS_LOG $ERROR_LOG <<EOF4
-------------------------------------
Commandes arrays
-------------------------------------
EOF4
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"
)
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 "Combien de disques sur l'ordinateur ? ${#DEVICES[@]}"
echo "keys: ${!PARTITIONS_BY_DISK[@]}"
echo "values: ${PARTITIONS_BY_DISK[@]}"
echo DEVICES=${DEVICES[@]} >$DIR/status.log
for disk in ${!PARTITIONS_BY_DISK[@]}; do
echo "PARTS_$disk=$(printf '%s ' ${PARTITIONS_BY_DISK[$disk]})" >>$DIR/status.log
done
treat_file() {
echo "Les arguments: $@"
echo "Argument 1: $1"
cat $2 >>$DIR/$1
}
treat_file sources_list.file /etc/apt/sources.list
for file in ${!FILES[@]}; do
treat_file $file ${FILES[$file]}
done
#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