Einfacher Weg mit 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
Mit lftp:
#!/bin/bash
lftp -u username,password ip << EOF
cd /home/xxx/xxx/what/you/want/
put what_you_want_to_upload
bye
EOF
Aus dem lftp-Handbuch:
-u <user>[,<pass>] use the user/password for authentication
Sie können mkdir verwenden, um ein Verzeichnis zu erstellen. Und Sie können den Put-Befehl mehrmals wie folgt verwenden:
put what_you_want_to_upload
put what_you_want_to_upload2
put what_you_want_to_upload3
Und Sie können die Verbindung mit bye
schließen
Sie können überprüfen, ob der Ordner vorhanden ist oder nicht:
#!/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
Aus dem lftp-Handbuch:
-c <cmd> execute the commands and exit
Und Sie können eine andere Verbindung öffnen, um einige Dateien abzulegen.
Ich weiß nicht, wie ich mit einer Verbindung überprüfen kann, ob der Ordner vorhanden ist oder nicht, aber ich kann das so machen. Vielleicht finden Sie eine bessere Lösung:
#!/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