Manière simple avec ftp :
#!/bin/bash
ftp -inv ip << EOF
user username password
cd /home/xxx/xxx/what/you/want/
put what_you_want_to_upload
bye
EOF
Avec lftp :
#!/bin/bash
lftp -u username,password ip << EOF
cd /home/xxx/xxx/what/you/want/
put what_you_want_to_upload
bye
EOF
Depuis le manuel lftp :
-u <user>[,<pass>] use the user/password for authentication
Vous pouvez utiliser mkdir pour créer un répertoire. Et vous pouvez utiliser la commande put plusieurs fois comme ceci :
put what_you_want_to_upload
put what_you_want_to_upload2
put what_you_want_to_upload3
Et vous pouvez fermer la connexion avec bye
Vous pouvez vérifier que le dossier existe ou non comme ceci :
#!/bin/bash
checkfolder=$(lftp -c "open -u user,pass ip; ls /home/test1/test1231")
if [ "$checkfolder" == "" ];
then
echo "folder does not exist"
else
echo "folder exist"
fi
Depuis le manuel lftp :
-c <cmd> execute the commands and exit
Et vous pouvez ouvrir une autre connexion pour mettre des fichiers.
Je ne sais pas comment vérifier que le dossier existe ou non avec une connexion, mais je peux le faire comme ça. Vous pouvez peut-être trouver une meilleure solution :
#!/bin/bash
checkfolder=$(lftp -c "open -u user,pass ip; ls /home/test1/test2")
if [ "$checkfolder" == "" ];
then
lftp -u user,pass ip << EOF
mkdir test2
cd test2
put testfile.txt
bye
EOF
else
echo "The directory already exists - exiting"
fi