Script shell probleme pour envoyer sur ftp

bonjour

j essaye de me connecter en FTP de part un script a mon serveur pour lui envoyer une sauvegarde.
au moment ou il arrive au parametres FTP il m’affiche ceci à l’ecran

il ne s’agit pas du bon user, il prend le user de ma session et non celui indiqué dans la variable.
pourquoi me demande t’il le password alors que je lui indique dans une variable ??

IP='91.121.22.170'
USER='moi'
PWD='password'
ZIP="/tmp/$(uname -n)-$(date +%F).tar"

CD='/home/olivier/'
function sendftp
{
if [ -n "$("$PING" -c1 "$IP" | grep 100%)"]; then
log "backup send to FTP "
fi

ftp -i $IP <<EOF
 quote USER $USER
 quote PASS $PWD
 cd $CD
put $ZIP
EOF

Bonjour,

Pour eviter d’avoir a passe le user et le mot de passe dans le script, tu peux creer le fichier .netrc dans la home du user qui lance le script.

syntaxe du fichier $HOME/.netrc

machine ftp.machin.fr login mon_compte password mon_passwd

Modification des droits du fichiers

Ensuite dans ton script, tu l’appelle comme ceci :

ftp -i ftp.machin.fr <<eof! ls eof!

je vais voir si cela permet de résoudre mon problème.
merci mikcy979

cela ne résout pas mon problème sniff… :angry: :angry: :013 :013

Bonjour,

As tu un message d’erreur une information ?

j ai le meme message d erreur
y a un truc bizarre que je ne comprend pas quand je fais ftp @IP il me marque ceci je rentre aucune information

zyriuse@sd-2351:~/Script_sh$ ftp 91.121.22.170 Connected to 91.121.22.170. 220---------- Welcome to Pure-FTPd [privsep] [TLS] ---------- 220-You are user number 7 of 75 allowed. 220-Local time is now 15:52. Server port: 21. 220 You will be disconnected after 15 minutes of inactivity. 331 User unxi OK. Password required 530 Login authentication failed Login failed. Remote system type is UNIX. Using binary mode to transfer files.

voici l’erreur que le script me produit

ogin authentication failed Login failed. ?Invalid command ?Invalid command You aren't logged in

Bonjour,

Ton fichier netrc ne semble pas correcte :

331 User unxi OK. Password required 530 Login authentication failed Login failed.

Il faut deja que la commande simple “ftp 91.121.22.170” fonctionne avant de pouvoir aller plus loin.

voici mon fichier .netrc

machine 91.121.22.170 login olivier password XXXXXX

Perso j’avais utilisé sur un de mes scripts :

ftp -n $FTPSERVER  << EOF
user $FTPUSER $FTPPASS
(...)
EOF

Tu peux aussi utiliser lftp, s’il est installé (paquet du même nom) :

lftp -u $FTPUSER,$FTPPASS <<EOF
(...)
EOF

Note : J’évite d’utiliser d’appeler une variable USER pour ne pas la confondre avec la variable d’environnement qui renvoie l’utilisateur courant.
Celà dit, si elle est redéfinie dans le script, ça ne devrait pas poser de problème…

+1 lftp

par exemple dans un script

+1 pour lftp moi aussi!
Sinon, le super script de Misterfreez : isalo.org/wiki.debian-fr/ind … Client_FTP