Srcipt test poid de fichier
vitcz
Messages postés
46
Date d'inscription
Statut
Membre
Dernière intervention
-
vitcz Messages postés 46 Date d'inscription Statut Membre Dernière intervention -
vitcz Messages postés 46 Date d'inscription Statut Membre Dernière intervention -
Bonjour a tous,
je ne trouve pas l'argument qui test le volume (poids, taille..) d'un fichier compresser avant un envoi ftp pour automatiser une archive : ça ressemblerais à cela :
#!/bin/bash
if [ $filename1.tar.gz -e size > 100Mo ]; then
ftp 00.00.00.00 <<EOF
bin
cd REP
send $filename1.tar.gz
quit
bye
EOF
exit 1
elif [ ! -e "$1" ]; then
echo "fichier trop volumineux"
exit 1
fi; done;
merci pour les pistes.
je ne trouve pas l'argument qui test le volume (poids, taille..) d'un fichier compresser avant un envoi ftp pour automatiser une archive : ça ressemblerais à cela :
#!/bin/bash
if [ $filename1.tar.gz -e size > 100Mo ]; then
ftp 00.00.00.00 <<EOF
bin
cd REP
send $filename1.tar.gz
quit
bye
EOF
exit 1
elif [ ! -e "$1" ]; then
echo "fichier trop volumineux"
exit 1
fi; done;
merci pour les pistes.
A voir également:
- Srcipt test poid de fichier
- Test performance pc - Guide
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
3 réponses
Salut,
voir man du pour voir si tu veux utiliser -h ou -H
taille=$(du -sh fichier.txt)et ensuite tu tu utilises la valeur contenu par la variable taille
voir man du pour voir si tu veux utiliser -h ou -H
Merci lami20j,
alors si j'ai bien compris :
du - estimate file space usage : attributs de taille (c'est ce que je ne trouvais pas)
-s ignore les poids des fichiers ou dossiers sous-jacents,
-f affiche en langage dis humain c'est a dire en Mo avec l'unité derrière la valeur.
là on lui prefere --si d'apres mes premiers tests.
Mais j'ai un problème dans ma syntaxe : car pour différencier, il faut utiliser les expressions arithmétiquesd u style ((a <= b)) then ... Or si ma variable $taille me sors en langage Human, alors il ne s'agit plus de chiffre mais de chaine de caractere dirait on...donc les comparaterus arythmétique ne fonctionnent pas....si je n'utilise pas -h ni -H ni --ssi, alors il faut que je code mes 100Mo en octes est ce que cela fait bien ... ( 100x1024x1024 = 104 857 600) ?
Je m'en remet aux expert développeurs ? J'imagine que c'est une problématique ancestrale et résolut. Merci pour vos lumières.
mes scripts de test ressemblent a cela :
#debut du script1
taille=$(du --si filename.tar.gz)
if (($taille >= 104 857 600)); then
echo "ne peut etre envoyé"
exit 1
fi;
#fin du scirpt
OU
#debut du script 2
taille=$(du --si filename.tar.gz)
if [$taille >= 100M] ; then
echo "ne peut etre envoyé"
exit 1
fi;
#fin du scirpt
alors si j'ai bien compris :
du - estimate file space usage : attributs de taille (c'est ce que je ne trouvais pas)
-s ignore les poids des fichiers ou dossiers sous-jacents,
-f affiche en langage dis humain c'est a dire en Mo avec l'unité derrière la valeur.
là on lui prefere --si d'apres mes premiers tests.
Mais j'ai un problème dans ma syntaxe : car pour différencier, il faut utiliser les expressions arithmétiquesd u style ((a <= b)) then ... Or si ma variable $taille me sors en langage Human, alors il ne s'agit plus de chiffre mais de chaine de caractere dirait on...donc les comparaterus arythmétique ne fonctionnent pas....si je n'utilise pas -h ni -H ni --ssi, alors il faut que je code mes 100Mo en octes est ce que cela fait bien ... ( 100x1024x1024 = 104 857 600) ?
Je m'en remet aux expert développeurs ? J'imagine que c'est une problématique ancestrale et résolut. Merci pour vos lumières.
mes scripts de test ressemblent a cela :
#debut du script1
taille=$(du --si filename.tar.gz)
if (($taille >= 104 857 600)); then
echo "ne peut etre envoyé"
exit 1
fi;
#fin du scirpt
OU
#debut du script 2
taille=$(du --si filename.tar.gz)
if [$taille >= 100M] ; then
echo "ne peut etre envoyé"
exit 1
fi;
#fin du scirpt
Bonjoru a tous,
Alors j'ai un peu avancé mais je bloque encore avec ce script qui dois tester le poid d'un fichier avant son envoi :
#!/bin/bash
#debut script------------------------
taille=$(du -sm $filename1.tar.gz |awk '{print $1}')
ftp $hostftp <<EOF
bin
cd $dossierftp
send $filename1.tar.gz
quit
bye
EOF
echo "le fichier a été envoyé"
else
echo "le fichier est trop lourd, merci de supprimer des fichierss"
exit;
fi;
#finscript-------------------------------------------
Alors j'ai un peu avancé mais je bloque encore avec ce script qui dois tester le poid d'un fichier avant son envoi :
#!/bin/bash
#debut script------------------------
taille=$(du -sm $filename1.tar.gz |awk '{print $1}')
ftp $hostftp <<EOF
bin
cd $dossierftp
send $filename1.tar.gz
quit
bye
EOF
echo "le fichier a été envoyé"
else
echo "le fichier est trop lourd, merci de supprimer des fichierss"
exit;
fi;
#finscript-------------------------------------------