ftp upload script

marcc

marcc

Tripel-As
hallo..
ich bin im programmieren leider nicht so hell. so weit bin ich schon gekommen ;)
Code:
#!/bin/bash
DATE=$(date +%Y-%m-%d)
cd /home/mrcfl/
tar cfvz /mnt/backup/Documents-$DATE.tar.gz Documents

cd /mnt/backup
bis dahin läuft alles. aber nach cd /mnt/backup
möchte ich ein automatisches upload auf meinen webserver erreichen.

von dem was ich bisher gegoolet hab bin ich nicht mal sicher ob des so einfach geht.
 
scp ist das stichwort (fallst port 22 offen ist)
falls du nur über das ftp-protokoll auf deinen webserver kommst (was sehr komisch wäre)
man ftp
 
Code:
mrcfl@thkpad:~$ scp /mnt/backup/test.txt web254@mrcfl.de:/linux 
ssh_exchange_identification: Connection closed by remote host
lost connection

port 22 ist bei mir im wohnheim geschlossen, aber des muss doch auch nur beim server offen sein?

EDIT: ich hab keinen root server..
 
Zuletzt bearbeitet:
Kannst du dich überhaupt per ssh auf den server einloggen?
Wahrscheinlich nicht, weil die gleichen Regeln gelten.
Aber ein Versuch ist es wert!
 
ich kann nicht per ssh zugreifen. nur direkt einloggen wie etwa bei freenet.de webspace.

wget hört sich ganz gut an. nur wie ich die verbindung zum server aufbaue und dann automatisch mit username und passwort anmelde muss ich noch rausfinden.
 
Auch ganz nett ist ncftpput. Bei Debian/(U)buntu heißt das Paket: ncftp

Hier ist ne Manual Page oder natürlich:

man ncftpput - Daten auf Server speichern
man ncftp - MutterProgramm
man ncftpget - Daten von Server holen

Ich verwende das ganze auch für automatische Backup's von meinem Server auf ein BackupSpace.
 
warum nicht einfach so? >

Code:
ftp -n <<FTP
   open hoster.de
   user username passwort
   bin
   put datei.zip datei.zip
   quit
FTP

Das einfach in ein Script packen ;)
 
Okay, hba das script vor nem jahr geschrieben, ist ne art SVN für nen FTP Server, du wirst die Pfade anpassen müssen.
Es ging darum ein PHP Script auf zwei XAMPPs zu Synchonisieren, der FTP Server war der Schul IServ Server. Das ding packt und verpackt den Code und die Datenbank, da es von einem Neuling (mir) in sachen Bash scripting geschrieben ist, ist es vielleicht ganz gut nach zu vollziehen.
ICH WEISS DAS DAS WIRKLICH NICHT DER BESTE CODE IST!

Code:
#!/bin/sh 


mysqlpath="/opt/lampp/var/mysql/"
serverpath="/opt/lampp/htdocs/"
scriptpath="projekt/txtcms/"

cd $serverpath$scriptpath

echo "Was soll getan werden?"
echo "Script hochladen (1), Script runterladen(2)?"
read todo

if [ $todo == "1" ];
then

	echo "Packe die Datenbank"
	tar -czf $serverpath$scriptpath/script/db/db.tar.gz --directory=$mysqlpath txtcms/

	echo "Generiere Dateinamen..."
	date +%Y-%m-%d--%H-%M-server.tar.gz
	filename=$(date +%Y-%m-%d--%H-%M-server.tar.gz)

	echo "Packe Script..."
	tar -czf $serverpath$scriptpath$filename --directory=$serverpath$scriptpath script/ 
	echo "Fertig gepackt!"

	echo "Generiere lastfile.dat"
	echo $filename > lastfile.dat


	echo "Welcher FTP-Server? ftp://server1.tld (1), ftp://server2.tld (2), Ein anderer (3)"
	read server
	echo "Bitte geben sie den Benutzernamen an:"
	read ftp_user

	if [ $server == "1" ];
	then
		echo "Lade die Dateien hoch.."
		ftp $ftp_user@server1.tld -u ftp://$ftp_user@server1.tld/Groups/Projekt\ Lindenstrasse/auto_site/ $filename lastfile.dat
		echo "Fertig geladen!"
	fi

	if [ $server == "2" ];
	then
		echo "Lade die Dateien hoch.."
		ftp $ftp_user@server2.tld -u ftp://$ftp_user@server2.tld/Groups/Projekt\ Lindenstrasse/auto_site/ $filename lastfile.dat
		echo "Fertig geladen!"
	fi

	if [ $server == "3" ];
	then
		echo "Bitte geben sie den Servernamen an (mit pfad zum Verzeichnis in dme sich die tar.bz Dateien befinden!)(meinserver.org/script):"

		read ftp_server
		echo "Lade die Dateien hoch.."
		ftp $ftp_user@$ftp_server -u ftp://$ftp_user@$ftp_server/Groups/Projekt\ Lindenstrasse/auto_site/ $filename lastfile.dat
		echo "Fertig geladen!"
	fi
fi

if [ $todo == "2" ];
then

	echo "Welcher FTP-Server? ftp://server1.tld (1), ftp://server2.tld (2), Ein anderer (3)"
	read server
	echo "Bitte geben sie den Benutzernamen an:"
	read ftp_user

	if [ $server == "1" ];
	then
		echo "Lade Info-Datei herunter..."
		ftp ftp://$ftp_user@server1.tld/Groups/Projekt\ Lindenstrasse/auto_site/lastfile.dat  
		echo "Fertig geladen!"
		lastfile=$(cat $serverpath$scriptpath/lastfile.dat)
		echo "Lade das Script herunter..."
		ftp ftp://$ftp_user@server1.tld/Groups/Projekt\ Lindenstrasse/auto_site/$lastfile
		echo "Fertig geladen!"

	fi

	if [ $server == "2" ];
	then
		echo "Lade Info-Datei herunter..."
		ftp ftp://$ftp_user@server2.tld/Groups/Projekt\ Lindenstrasse/auto_site/lastfile.dat  
		echo "Fertig geladen!"
		lastfile=$(cat $serverpath$scriptpath/lastfile.dat)
		echo "Lade das Script herunter..."
		ftp ftp://$ftp_user@server2.tld/Groups/Projekt\ Lindenstrasse/auto_site/$lastfile
		echo "Fertig geladen!"
	fi

	if [ $server == "3" ];
	then
		echo "Bitte geben sie den Servernamen an (mit pfad zum Verzeichnis in dme sich die tar.bz Dateien befinden!)(meinserver.org/script):"
		read ftp_server
		echo "Lade Info-Datei herunter..."
		ftp ftp://$ftp_user@$ftp_server/lastfile.dat  
		echo "Fertig geladen!"
		lastfile=$(cat $serverpath$scriptpath/lastfile.dat)
		echo "Lade das Script herunter..."
		ftp ftp://$ftp_user@server1.tld/Groups/Projekt\ Lindenstrasse/auto_site/$lastfile
		echo "Fertig geladen!"
	fi
	#lastfile=$(cat $serverpath$scriptpath/lastfile.dat)
	echo "Entpacke das Script.."
	tar -xzf $serverpath$scriptpath$lastfile --directory=$serverpath$scriptpath "script" 


	echo "Entpacke die Datenbank..."
	tar -xzf $serverpath$scriptpath/script/db/db.tar.bz2 --directory=$mysqlpath


fi
 
hey super..
scheint auf den ersten blick genau des richtige zu sein.
 

Ähnliche Themen

Verschlüsseltes Backup-Script mit rsync

tar network backup problem

Windows clients können nicht mehr auf lange laufendes System zugreifen

Prozess aus eigenem Init script wird gekillt

Script - If - immer false...

Zurück
Oben