138 lines
3.6 KiB
Bash
Executable File
138 lines
3.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
|
|
SUM="$DIR/summary.txt"
|
|
|
|
# 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"
|
|
"ssh_config.file" "/etc/ssh/ssh_config"
|
|
)
|
|
|
|
treat_file() {
|
|
echo "Les arguments: $@"
|
|
cat $2 |grep -v '^#' | grep -v '^$' >>$DIR/$1
|
|
}
|
|
|
|
treat_cmd() {
|
|
|
|
|
|
|
|
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 "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 " " >>$SUM
|
|
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
|
|
|