Moulinette Init
This commit is contained in:
commit
8bb29018d5
7
exec.sh
Executable file
7
exec.sh
Executable file
@ -0,0 +1,7 @@
|
||||
#!/bin/ash
|
||||
./transfert.sh rsync
|
||||
./transfert.sh scp
|
||||
|
||||
echo "je suis inutile j'aurai pus faire &&"
|
||||
|
||||
cat report.txt
|
||||
40
report.txt
Normal file
40
report.txt
Normal file
@ -0,0 +1,40 @@
|
||||
====================
|
||||
Résumé du transfert
|
||||
====================
|
||||
Commande de tranfert: rsync
|
||||
Temps de transfert m: 0
|
||||
Temps de transfert s: 14.52
|
||||
Vitesse de transfert: 70.60 MB/s
|
||||
Nombre de coupures: 0
|
||||
Qauntite dans la table: 2024/08/15 - 16:42:58
|
||||
====================
|
||||
Résumé du transfert
|
||||
====================
|
||||
Commande de tranfert: scp
|
||||
Temps de transfert m: 0
|
||||
Temps de transfert s: 14.04
|
||||
Vitesse de transfert: 73.16 MB/s
|
||||
Nombre de coupures: 0
|
||||
Qauntite dans la table: 2024/08/15 - 16:45:26
|
||||
====================
|
||||
Résumé du transfert
|
||||
====================
|
||||
Commande de tranfert: rsync
|
||||
Temps de transfert m: 0
|
||||
Temps de transfert s: 14.52
|
||||
Vitesse de transfert: 70.58 MB/s
|
||||
Nombre de coupures: 0
|
||||
Quantite dans la table: 60
|
||||
Debut: 2024/08/15 - 16:50:58
|
||||
Fin: 2024/08/15 - 16:53:33
|
||||
====================
|
||||
Résumé du transfert
|
||||
====================
|
||||
Commande de tranfert: scp
|
||||
Temps de transfert m: 0
|
||||
Temps de transfert s: 14.03
|
||||
Vitesse de transfert: 73.12 MB/s
|
||||
Nombre de coupures: 0
|
||||
Quantite dans la table: 60
|
||||
Debut: 2024/08/15 - 16:53:33
|
||||
Fin: 2024/08/15 - 16:56:02
|
||||
121
transfert.sh
Executable file
121
transfert.sh
Executable file
@ -0,0 +1,121 @@
|
||||
#!/bin/ash
|
||||
|
||||
# Variables
|
||||
FILE_TO_TRANSFER="testfile1.img"
|
||||
DESTINATION_USER="root@10.20.30.15"
|
||||
DESTINATION_PATH="/mnt/"
|
||||
TRANSFER_METHOD=$1
|
||||
REMOVE_REMOTE="rm -r $DESTINATION_PATH*"
|
||||
LOGFILE="transfer_log.txt"
|
||||
DATE=$(date +"%Y%m%d")
|
||||
STIME=$(date +"%Y/%m/%d - %H:%M:%S")
|
||||
i=1
|
||||
rm $LOGFILE
|
||||
|
||||
# Fonction pour démarrer le transfert
|
||||
start_transfer() {
|
||||
case $TRANSFER_METHOD in
|
||||
scp)
|
||||
{ time scp $FILE_TO_TRANSFER $DESTINATION_USER:$DESTINATION_PATH; } 2>> $LOGFILE
|
||||
;;
|
||||
rsync)
|
||||
{ time rsync -av --progress $FILE_TO_TRANSFER $DESTINATION_USER:$DESTINATION_PATH; } 2>> $LOGFILE
|
||||
;;
|
||||
sftp)
|
||||
{ time sftp $DESTINATION_USER:$DESTINATION_PATH <<EOF
|
||||
put $FILE_TO_TRANSFER
|
||||
EOF
|
||||
} 2>> $LOGFILE
|
||||
;;
|
||||
*)
|
||||
echo "Méthode de transfert non reconnue."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
check_db() {
|
||||
if su postgres -c "psql -lqt | grep -q d$DATE"; then
|
||||
echo ""
|
||||
else
|
||||
echo "|| CREATE DB d$DATE ||"
|
||||
su postgres -c "createdb -T template0 d$DATE"
|
||||
|
||||
fi
|
||||
}
|
||||
|
||||
check_table(){
|
||||
if su postgres -c "psql d$DATE -c \"\d\"| grep -q $TRANSFER_METHOD"; then
|
||||
echo ""
|
||||
else
|
||||
echo "|| CREATE TABLE $TRANSFER_METHOD ||"
|
||||
su postgres -c "psql d$DATE -c \"CREATE TABLE $TRANSFER_METHOD (id SERIAL, tmp BIGINT, speed NUMERIC, cut INT);\""
|
||||
fi
|
||||
}
|
||||
|
||||
insert_db(){
|
||||
su postgres -c "psql d$DATE -c \"INSERT INTO $TRANSFER_METHOD (id, tmp, speed, cut) VALUES (DEFAULT, $TOTAL_SECONDS, $TRANSFER_SPEED, $ERRORS);\""
|
||||
|
||||
}
|
||||
|
||||
make_dbtot(){
|
||||
su postgres -c "psql d$DATE -c \"CREATE TABLE total$TRANSFER_METHOD AS SELECT ROUND(AVG(tmp), 2) AS tmp , ROUND(AVG(speed), 2) AS speed, SUM(cut) AS cut FROM $TRANSFER_METHOD;\""
|
||||
|
||||
}
|
||||
|
||||
|
||||
# Tu fait le check-up
|
||||
check_db
|
||||
check_table
|
||||
|
||||
for i in $(seq 1 10);
|
||||
do
|
||||
|
||||
# Démarrer le transfert et mesurer le temps
|
||||
start_transfer
|
||||
|
||||
# Analyser les données
|
||||
# Extraire les minutes et les secondes
|
||||
|
||||
MINUTES=$(grep real $LOGFILE | awk '{print $2}' | sed 's/m//')
|
||||
SECONDS=$(grep real $LOGFILE | awk '{print $3}' | sed 's/s//')
|
||||
|
||||
# Si MINUTES est vide, on n'a que des secondes
|
||||
if [ -z "$MINUTES" ]; then
|
||||
TOTAL_SECONDS=$SECONDS
|
||||
else
|
||||
# Sinon, on convertit les minutes en secondes et on ajoute les secondes
|
||||
TOTAL_SECONDS=$(echo "$MINUTES * 60 + $SECONDS" | bc)
|
||||
fi
|
||||
|
||||
TRANSFER_SIZE=$(ls -l $FILE_TO_TRANSFER | awk '{print $5}')
|
||||
TRANSFER_SPEED=$(echo "scale=2; ($TRANSFER_SIZE / 1024 / 1024) / $TOTAL_SECONDS" | bc)
|
||||
ERRORS=$(grep -i "error" $LOGFILE | wc -l)
|
||||
insert_db
|
||||
i=$($i + 1)
|
||||
ssh $DESTINATION_USER $REMOVE_REMOTE
|
||||
rm $LOGFILE
|
||||
|
||||
done
|
||||
|
||||
make_dbtot
|
||||
|
||||
DBTMP_S=$(su postgres -c "psql d$DATE -t -A -c \"select tmp from total$TRANSFER_METHOD;\"")
|
||||
DBTMP_M=$(echo "$DBTMP_S / 60" | bc)
|
||||
DBSPEED=$(su postgres -c "psql d$DATE -t -A -c \"select speed from total$TRANSFER_METHOD;\"")
|
||||
DBCUT=$(su postgres -c "psql d$DATE -t -A -c \"select cut from total$TRANSFER_METHOD;\"")
|
||||
ETIME=$(date +"%Y/%m/%d - %H:%M:%S")
|
||||
QUANT=$(su postgres -c "psql d$DATE -t -A -c \"select id from $TRANSFER_METHOD ORDER BY id DESC LIMIT 1;\"")
|
||||
# Afficher les résultats
|
||||
echo "====================" >> report.txt
|
||||
echo "Résumé du transfert " >> report.txt
|
||||
echo "====================" >> report.txt
|
||||
echo "Commande de tranfert: $TRANSFER_METHOD" >> report.txt
|
||||
echo "Temps de transfert m: $DBTMP_M" >> report.txt
|
||||
echo "Temps de transfert s: $DBTMP_S" >> report.txt
|
||||
echo "Vitesse de transfert: $DBSPEED MB/s" >> report.txt
|
||||
echo "Nombre de coupures: $DBCUT" >> report.txt
|
||||
echo "Quantite dans la table: $QUANT" >> report.txt
|
||||
echo "Debut: $STIME" >> report.txt
|
||||
echo "Fin: $ETIME" >> report.txt
|
||||
# Nettoyage
|
||||
Loading…
Reference in New Issue
Block a user