Merci pour ta réponse.tu peux exécuter sur ton poste (sous windows ?) un fichier bat qui comprend en fait des commandes php ou ftp régulièrement avec le planificateur de taches. Je te conseil d'ailleurs que se soit tonpsote lcoal qui fasse la connection et non l'inverse, l'adresse ftp du serveur à peut de chance de changer alors que ton poste local s'il est en dhcp lui peut changer d'adresse.
Je laisserai les pro linux répondreMon poste local est sous ubuntu...
J'ai tilté que l'on pouvait créer un script bash pour iptables, donc je me demandais si on pouvait faire pareil pour effectuer d'autres actions et l'éxécuter à intervalles réguliers.
Code : Tout sélectionner
#!/bin/bash
ftp -vni x.x.x.x <<FINFTP
user loginuser passworduser
put "monfichieràuploader"
bye
FINFTP
Merci bcpSlt ,
Un petit script bash ou shell au choix, ce ce type :
Hop , tu le rends executable , et tu le met en tache cron à ta convenance ..Code : Tout sélectionner
#!/bin/bash ftp -vni x.x.x.x <<FINFTP user loginuser passworduser put "monfichieràuploader" bye FINFTP
te reste plus qu'à gérer un fichier de log pour voir si tout ce passe bien ..
Good luck ,
Ch.
Code : Tout sélectionner
#!/bin/bash
cd /home/mon_rep/
ftp -vni 192.168.0.2 << END_SCRIPT
quote USER mon_user
quote PASS mon_pass
for file in ma_syntaxe*
do
put $file
done
bye
END_SCRIPTCode : Tout sélectionner
#!/bin/sh
USER=myuser
PASSWD=mypass
filenum=$1
x=0
echo "open 159.167.95.199
user $USER $PASSWD
binary
cd pacsftp01" > /tmp/ftp.$$
while [ $x -lt $filenum ]
do
echo "put test.txt
delete test.txt" >> tmp/ftp.$$
x=`expr $x + 1`
done
echo "quit" >> /tmp/ftp.$$
ftp -ivn < /tmp/ftp.$$
echo $x files transferred
rm /tmp/ftp.$$Code : Tout sélectionner
sudo crontab -l
* * * * * root /home/mon_rep/bash/bash_mon_client.sh >> /home/mon_rep/bash/cron.log
Code : Tout sélectionner
#!/bin/bash
echo "Lancement du BASH @ `date`" >> /home/mon_rep/bash/logs_bash_mon_client/`date +%Y%m%d`
cd /home/mon_rep/external_files/mon_client/envoi_client/
if [ -e ficWCCA011* ]
then
echo "open 192.168.0.22
quote USER user
quote PASS password" > /tmp/ftp.$$
for file in ficWCCA011*
do
echo "put $file" >> /tmp/ftp.$$
echo "put $file" >> /home/mon_rep/bash/logs_bash_mon_client/`date +%Y%m%d`
done
echo "bye" >> /tmp/ftp.$$
ftp -ivn < /tmp/ftp.$$
rm /tmp/ftp.$$
for file in ficWCCA011*
do
mv $file ../traite/
done
else
echo "Aucun fichier trouve" >> /home/mon_rep/bash/logs_bash_mon_client/`date +%Y%m%d`
fi
echo "Fin du BASH @ `date`" >> /home/mon_rep/bash/logs_bash_mon_client/`date +%Y%m%d`
echo "" >> /home/mon_rep/bash/logs_bash_mon_client/`date +%Y%m%d`Je me réponds à moi même...Bon, ça m'énerve... Je tourne en rond avec crontab !Le fichier cron.log est bien créé toutes les minutes et est vide. Mon fichier de log bash lui n'est pas impacté, et les fichiers présents non transférés ce qui pour moi signifie que le script ne s'exécute pas. Lorsque je tape "sudo /home/mon_rep/bash/bash_mon_client.sh", mon script s'exécute correctement.Code : Tout sélectionner
sudo crontab -l * * * * * root /home/mon_rep/bash/bash_mon_client.sh >> /home/mon_rep/bash/cron.log
Les droits sur mon fichier sont -rwxr-xr-x
Où pourrait se situer le problème ? Note : je suis sous ubuntu x64