Pages : 1
#1 Le 23/04/2008, à 09:54
- B@rtounet
Aide pour un script
Bonjour,
pourriez vous m'aider pour mettre en place un petit script...
C'est assez simple, je voudrais partir d'un fichier d'origine fic0 et le copier par exemple ailleur sur le disque en fic1, et copier ce fic1 en fic2 et copier ce fic2 en fic3...
En fait je voudrais faire de copie de copie durant un cycle don je déciderais le temps de la boucle.
si vous pouviez juste m'aiguiller sur la méthode à suivre
Hors ligne
#2 Le 23/04/2008, à 10:13
- Ultandir
Re : Aide pour un script
Bonjour,
Quel(s) langage(s) connait tu?
Ce que tu veut est faisable en plusieurs langages ( plus facilement en certain que dans d'autre ).
Dit moi ton langage de prédilection.
Fedora Cambridge i386
Zenwalk 5.2
-------------
Il y a 10 types de personnes : celles qui connaissent le binaire, et celles qui ne le connaissent pas.
Hors ligne
#3 Le 23/04/2008, à 10:17
- delphin2
Re : Aide pour un script
Bonjour,
En bash ( pas tout à fait ):
duree = 60 #en secondes
time = 0
fichier = chemin_fichier
tant que time < duree
cp fichier chemin
chemin = quelque chose
time+=1
etc.... tu crée une arborescence pour descendre dans les dossiers par exemple pour copier le fichier dans l'arborescence et dans le tant que au fur et à mesure tu descends dans l'arborescence
Un truc comme ca?
Dernière modification par delphin2 (Le 23/04/2008, à 10:23)
Hors ligne
#4 Le 23/04/2008, à 10:22
- yohann
Re : Aide pour un script
#!/bin/bash
##
## Usage: my_cp file_to_cpy nb_cpy time_between_cpy
cmpt=0
while [$cmpt != $2]; do
cmpt=$(($cmpt+1))
echo "copying $1 into ${1}${cmpt}
cp $1 ${1}${cmpt}
echo "waiting $3 seconds"
sleep $3
done
exit 0
je crois que ça ressemble a ça, c'est tres porky car pas de traitement correct des option ou des erreurs, mais pour un script perso ça devrait le faire
exemple d'utiliastion:
./my_cpy.sh test.txt 3 10
devrait copier le fichier test.txt 3 fois en test.txt1 test.txt2 test.txt3
la premier copie a lieu instantanement, puis on attent 10 secondes avant de faire la deuxieme puis on attent 10 secondes avant la troisieme et enfin on attend 10 secondes avant de terminer le script (oui c'est moche )
si les parametre sont pas bon tant pis on fait de la merde.
chmod u+x my_cpy.sh
pour le rendre executable
bonne chance
PS: script absolument pas testé j'espere que ça fonctionne
edit : double grilled...
reedit: recherche script dans la doc et y a tout
Dernière modification par yohann (Le 23/04/2008, à 10:24)
j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.
Hors ligne
#5 Le 23/04/2008, à 10:24
- Ultandir
Re : Aide pour un script
@delphin2, yohann :
C'est un shell un peu barbare sur les bords ca
A ce moment la il serait mieux a mettre le nom du fichier et le nombres de copies en parametre
avec verifications pour eviter les problèmes :
if [ $# -ne 2 ]
then
echo "Usage : deux argument ==> nom_du_fichier nombre_de_copies"
fi
compt=0
//boucle et fin ^^
Dernière modification par Ultandir (Le 23/04/2008, à 10:27)
Fedora Cambridge i386
Zenwalk 5.2
-------------
Il y a 10 types de personnes : celles qui connaissent le binaire, et celles qui ne le connaissent pas.
Hors ligne
#6 Le 23/04/2008, à 10:28
- yohann
Re : Aide pour un script
if [ $# -ne 3 ]
then
echo "Usage : trois argument ==> nom_du_fichier nombre_de_copies delais_entre_copies"
fi
Dernière modification par yohann (Le 23/04/2008, à 10:28)
j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.
Hors ligne
#7 Le 23/04/2008, à 10:57
- delphin2
Re : Aide pour un script
@delphin2, yohann :
C'est un shell un peu barbare sur les bords ca
A ce moment la il serait mieux a mettre le nom du fichier et le nombres de copies en parametre
avec verifications pour eviter les problèmes :if [ $# -ne 2 ] then echo "Usage : deux argument ==> nom_du_fichier nombre_de_copies" fi compt=0 //boucle et fin ^^
C'est clair tu as parfaitement raison :D pardon pardon
Dernière modification par delphin2 (Le 23/04/2008, à 10:58)
Hors ligne
#8 Le 23/04/2008, à 11:06
- Ultandir
Re : Aide pour un script
Tu es pardonné pour cette fois.......
Fedora Cambridge i386
Zenwalk 5.2
-------------
Il y a 10 types de personnes : celles qui connaissent le binaire, et celles qui ne le connaissent pas.
Hors ligne
#9 Le 23/04/2008, à 15:49
- B@rtounet
Re : Aide pour un script
Je suis pas developpeur, j'ai essayé de me dépatouiller
j'ai pondu ca... ca fonctionne,
qu'en pensez vous ?
#!/bin/bash
#MARTINEAU Antony
#This script make a file copy point at point and check md5sum before and after the transfert
###############################
ramdisk="/tmpramfs"
if [ -z $(mount | grep /tmpramfs | awk '{print $3}') ]; then
if [ -z $(ls / | grep tmpramfs) ]; then
mkdir /tmpramfs
mount -t tmpfs -o size=16M, tmpfs /tmpramfs > /dev/null 2>&1
else
mount -t tmpfs -o size=16M, tmpfs /tmpramfs > /dev/null 2>&1
fi
fi
###############################
sourcefile="/home/antony/inetgwfullbackup.tar.gz"
targetdest="/home/antony/"
md5srcf="$ramdisk/md5src"
md5targf="$ramdisk/md5targ"
loop="10"
fic=$(echo $sourcefile | awk -F\/ '{print $NF}') #last word
countok="0"
counterror="0"
#cp $sourcefile $targetdest$fic.orig
md5src=$(md5sum $sourcefile | awk '{print $1}')
for i in `seq 1 $loop`
do
cp $sourcefile $targetdest$fic.$i
rm -f $sourcefile
sourcefile=$targetdest$fic.$i
md5targ=$(md5sum $sourcefile | awk '{print $1}')
echo $md5targ
if [ "$md5src" = "$md5targ" ]
then
echo "Test md5 OK beetween Source and target"
countok=$(($countok + 1))
else
echo "Error !! md5 is different beetween Source and target"
countok=$(($counterror + 1))
fi
done
Hors ligne
#10 Le 23/04/2008, à 17:38
- Ultandir
Re : Aide pour un script
Si ca marche : tant mieux
Fait quand même une vérification du nombre d'arguments ( cf code au dessus ).
Pour des trucs dans ce genre, je n'aime pas trop le shell. Il devient vite limité d'après moi.
Un programme de ce genre je l'aurai fait en C
Fedora Cambridge i386
Zenwalk 5.2
-------------
Il y a 10 types de personnes : celles qui connaissent le binaire, et celles qui ne le connaissent pas.
Hors ligne
Pages : 1