====== Script Bash pour upload de CSV ====== {{ :dummy.png?75x75|}} Dans le script Bash, la commande "curl" permet d'envoyer le fichier vers la page PHP d'upload. Voici un exemple de code Bash qui télécharge tous les fichiers CSV dans un répertoire, à l'exception de celui qui a été modifié le jour même. Pour exclure le fichier CSV modifié le jour même de l'envoi, on a utilisé la commande **find** pour localiser tous les fichiers CSV dans le répertoire spécifié qui ne sont pas modifiés aujourd'hui. Ensuite, on boucle sur cette liste de fichiers et exécuter le code d'envoi de fichier pour chaque fichier trouvé. Pour chaque fichier, nous avons calculé le **SHA-1** localement, envoyé le fichier au script PHP, récupéré le **SHA-1** calculé par le script PHP et comparé les deux valeurs de hachage. Si les valeurs de hachage sont identiques, nous avons affiché un message de confirmation et déplacé le fichier CSV dans le dossier ''done/''. Si les valeurs de hachage ne sont pas identiques, nous avons affiché un message d'erreur. #!/bin/bash # Chemin vers le répertoire contenant les fichiers CSV csv_dir="." # Exclure le fichier CSV modifié le jour même exclude_today="-not -newermt $(date +%Y-%m-%d)" # Trouver tous les fichiers CSV dans le répertoire, à l'exception de celui modifié le jour même csv_files=$(find "$csv_dir" -maxdepth 1 -type f -iname '*.csv' $exclude_today) # URL du script PHP qui gère les fichiers CSV php_script="http://ampere.rpiluc001.acegrp.lan/upload.php" # Vérifier si le dossier "done/" existe if [ ! -d "$csv_dir/done" ] then # Créer le dossier "done/" mkdir "$csv_dir/done" fi # Parcourir le répertoire des fichiers CSV for file in $csv_files do # Calculer le CRC du fichier crc=$(sha1sum "$file" | awk '{print $1}') # Envoyer le fichier CSV et le CRC au script PHP via cURL output=$(curl -F "file=@$file" $php_script) # Vérifier la réponse du script PHP if [ "$output" = "$crc" ] then # Déplacer le fichier CSV dans le dossier "done/" mv "$file" "$csv_dir/done/" echo "Le fichier $file a été correctement traité." else echo "Une erreur s'est produite lors du traitement du fichier $file." fi done --- //[[user:cedricabonnel]]//