Correction script shell paramètres
Bonjour la communauté,
Je cherche à affiner le script suivant mais pour lequel je n'arrive pas à avoir le rendu final correct.
En somme, je voudrais passer des paramètres au script ingest_scriptlisterfiles2.sh pour différents environnements.
J'explique pour une meilleure compréhension en tapant par exemple : ./ingest_scriptlisterfiles2.sh dev ou devcnt ou int je veux que le script en s'exécutant sélectionne indépendamment l'un de l'autre soit l'environnement dev ou devcnt ou int située sous l'arborescence /sftpusers/user-*/data/dev ou /sftpusers/user-*/data/devcnt ou /sftpusers/user-*/data/int
J'ai trouvé des petites choses sur la toile mais ceci ne fonctionne visiblement pas dans l'application puisque les fichiers ne sont pas filtrés en fonction de l'environnement dev devcnt ou int
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
| #!/bin/bash
date=$(date +%Y%m%d%H%M)
log=/home/user-ingest/listerfichiers/log/fichierlog_$date.txt
repRecherche=/sftpusers/
#######################################################
# Titre avec Date en en-tête du fichier log
#######################################################
now="$(date +'%A %d %B %Y %H:%M')"
titre="Fichier log du $now"
#######################################################
# Mise en Forme centrée de l'entete du fichier log
#######################################################
center() {
termwidth="$(tput cols)"
padding="$(printf '%0.1s' ={1..500})"
printf "%*.*s %s %*.*s\n\n\n" 0 "$(((termwidth-2-${#1})/2))" "$padding" "$1" 0 "$(((termwidth-1-${#1})/2))" "$padding"
}
center "$titre" > "$log"
#######################################################
# Existence de fichiers ou non
#######################################################
if [ -z "$(find "$repRecherche" -maxdepth 4 -type f 2>/dev/null)" ]; then
echo -e "\e[1;31mPas de fichiers trouvés\e[0m \n\n "
else
echo -e "\e[1;31mDes fichiers existent\e[0m \n\n "
fi
#######################################################
# Informations sur les fichiers
#######################################################
infos_compteurs() {
find "$repRecherche" -maxdepth 0 -type d | while read dossier; do
echo -e "\e[1;33mIl y a `find "$dossier" -type f 2>/dev/null | grep "data" | wc -l` fichiers trouvés dans l'arborescence sftpusers/user-XXXX/data \e[0m \n\n" ######tous les fichiers#########
done
}
infos_presence_fichiers() {
today="$(date '+%s')"
while read fic; do
datedernieremodific="$(stat --format "%Y" "$fic")"
ecart=$((($today - $datedernieremodific) / 86400))
echo -e "nom du fichier : $fic"
echo -e "date dernier acces du fichier : $(stat --format "%.19x" "$fic")"
echo -e "durée de présence en jours : $ecart\n\n"
done
}
######################################################
# Parametres du script
######################################################
while getopts u:a:f: env
do
case "${env}" in
u) dev=${OPTARG};;
a) devcnt=${OPTARG};;
f) int=${OPTARG};;
esac
done
echo "environnement: $dev";
echo "environnement: $devcnt";
echo "environnement: $int";
######################################################
# Envoi des résultats trouvés vers le log
######################################################
find "$repRecherche" -type f 2>/dev/null | grep "data" | infos_compteurs >> "$log" ######tous les fichiers#########
find "$repRecherche" -type f 2>/dev/null | grep "data" | infos_presence_fichiers >> "$log" ######tous les fichiers#########
more "$log"
cp $log /home/user-ingest/listerfichiers/log/fichierlog_saagie.txt |