Ubuntu server - Upload een hele directory naar domein

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Tyoi
  • Registratie: September 2008
  • Laatst online: 12-08 21:19

Tyoi

Beddytear

Topicstarter
Heren, dames,

Ik heb thuis een Ubuntu 16.04.2 LTS server draaien voor een Minecraft wereldje. Daarin heb ik ook een 'programma' draaien die een google-map achtig overzicht maakt (programma = overviewer).

Dit programma creeert een index.html en een aantal overige bestanden die je eventueel kunt bekijken als je die (handmatig) upload naar een hostingprovider/domein, ofwel www.jouwminecraftmap.nl of iets dergelijks.

Handmatige upload werkt, maar dit is natuurlijk omslachtig, zeker als je dat elke dag moet doen. Is er een manier om dit automatisch te uploaden met wellicht FTP, SFTP of SCP? Ik heb al zeker een aantal uren lopen rondgooglen om dergelijke commands/scripts te maken zoals:
https://www.linux.com/blog/ftp-file-transfer-automated-bash-script
https://apple.stackexchange.com/questions/18106/how-do-i-download-folders-through-ftp-in-terminal
https://superuser.com/questions/269882/can-i-upload-an-entire-folder-using-ftp
maar ik kom er met die info niet uit. Tevens lijkt mijn eigen hostingprovider mij tegen te werken door alleen een FTP mogelijkheid te geven op poort 21, en niet SFTP of SCP. En een nieuwe FTP gebruiker aanmaken krijg de gebruikersnaam username@mijndomeinnaam.nl mee, wat voor problemen zorgt in een linux commando dat het @ teken gebruikt als scheidingsteken tussen username@ftp.mijndomeinnaam.nl.

Wellicht (vrij zeker) is er een knappere kop dan ik die hier meer vanaf weet en kan diegene mij wellicht hiermee assisteren.

Mijn dank is in ieder geval al groot dat je dit allemaal gelezen hebt ;)

1) You are on the internet.
2) You are on Tweakers.net.
3) You are reading my signature.
5) You didn't notice that there is no 4.
6) You just checked it.

Beste antwoord (via Tyoi op 18-07-2017 23:27)


  • SadisticPanda
  • Registratie: Februari 2009
  • Niet online

SadisticPanda

Heet patatje :o

Je moet een
code:
1
chmod +x overviewer-upload.sh


doen alvorens het bestandje uitvoerbaar is.

Btw je script is ansich niet echt verkeerd, maar inderdaad je user en pass worden gewoon plat verzonden.

ik prefereer lftp ipv van gewone lftp. Kan je FTPS gebruiken als je server FTPS heeft(normaal wel en can je ook meerdere files tegelijk sturen en nog wat handige dingen) (apt-get install lftp)

Je maakt een bestandje aan met de lftp commandos

upload.script
code:
1
2
3
4
open -u [user],[password] -p [port] [server]
set ssl:verify-certificate no (deze lijn enkel toevoegen als je server een selfsigned certificaat gebruikt!!!!!!!!)
mirror -c -e -R /local_dir /remote_dir
exit


En dan roep je dit gewoon aan in he bash scriptje
code:
1
2
#!/bin/bash
lftp -f upload.script

[ Voor 32% gewijzigd door SadisticPanda op 18-07-2017 23:07 ]

Marstek 5.12kw v151, CT003 v117, Sagecom Xs212 1P,

Alle reacties


Acties:
  • +1 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 22:30

Hero of Time

Moderator LNX

There is only one Legend

@ is geen probleem in een gebruikersnaam, die kan je escapen met \. Heb je wel gewoon SSH toegang? Want dat is wat sftp/scp gewoon is. En anders kan je nog rsync proberen, al wil dat het liefst via SSH gaat ivm encryptie enzo. En wellicht dat de poort zelf wordt geblokkeerd door je VPS provider.

Je stelt een vraag, maar laat verders niet zien wat je doet met commando's e.d., vooral wat je nu handmatig doet. Hoe doe je dat nu dan?

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • Tyoi
  • Registratie: September 2008
  • Laatst online: 12-08 21:19

Tyoi

Beddytear

Topicstarter
Bij mijn hostingprovider heb ik bij het aanmaken van nieuwe FTP gebruiker alleen de toegang om die in te stellen op poort 21, niet poort 22. Dat leek mij op alleen FTP, en niet SFTP.

Mijn noobness in deze situatie is te groot om je direct te kunnen zeggen of ik SSH toegang heb naar mijn hostingprovider/domein. Natuurlijk wel naar mijn eigen server, inloggen gaat bijvb. via PuTTY over SSH.

Ik zou graag de veiligere varianten van data overdracht willen gebruiken, bij een FTP overdracht wordt en (zoals ik begrepen heb) gewoon in plain text een username en wachtwoord overgeschoten.

Ik heb als laatste een bestandje 'overviewer-upload.sh' aangemaakt en daarin verschillende stuckjes script geprobeerd zoals bijvb:
code:
1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
HOST='ftp.mijndomeinnaam.nl'
USER='username@mijndomeinnaam.nl'
PASSWD='paswoord'

ftp -n -v $HOST << EOT
ascii
user $USER $PASSWD
prompt
cd ~/overviewer/map
mput *
EOT


Maar als ik dit uitvoer (zelfs als root) dan krijg ik de melding:
code:
1
-bash: ./overviewer-upload.sh: Permission denied


Ik zit niet vast op FTP/SFTP/SCP commando's enz, als er een elegantere manier is om tot een dergelijk eindresultaat te komen (op een enige 'veilige' manier) dan ben ik een en al oor.

1) You are on the internet.
2) You are on Tweakers.net.
3) You are reading my signature.
5) You didn't notice that there is no 4.
6) You just checked it.


Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • SadisticPanda
  • Registratie: Februari 2009
  • Niet online

SadisticPanda

Heet patatje :o

Je moet een
code:
1
chmod +x overviewer-upload.sh


doen alvorens het bestandje uitvoerbaar is.

Btw je script is ansich niet echt verkeerd, maar inderdaad je user en pass worden gewoon plat verzonden.

ik prefereer lftp ipv van gewone lftp. Kan je FTPS gebruiken als je server FTPS heeft(normaal wel en can je ook meerdere files tegelijk sturen en nog wat handige dingen) (apt-get install lftp)

Je maakt een bestandje aan met de lftp commandos

upload.script
code:
1
2
3
4
open -u [user],[password] -p [port] [server]
set ssl:verify-certificate no (deze lijn enkel toevoegen als je server een selfsigned certificaat gebruikt!!!!!!!!)
mirror -c -e -R /local_dir /remote_dir
exit


En dan roep je dit gewoon aan in he bash scriptje
code:
1
2
#!/bin/bash
lftp -f upload.script

[ Voor 32% gewijzigd door SadisticPanda op 18-07-2017 23:07 ]

Marstek 5.12kw v151, CT003 v117, Sagecom Xs212 1P,


Acties:
  • 0 Henk 'm!

  • Tyoi
  • Registratie: September 2008
  • Laatst online: 12-08 21:19

Tyoi

Beddytear

Topicstarter
Dat werkt als een tierelier!

Nu nog ff rondgooglen hoe ik dat elke nacht uitvoer zodat een verse geupdate map online staat in de ochtend.

Dank je!

1) You are on the internet.
2) You are on Tweakers.net.
3) You are reading my signature.
5) You didn't notice that there is no 4.
6) You just checked it.


Acties:
  • +1 Henk 'm!

  • SadisticPanda
  • Registratie: Februari 2009
  • Niet online

SadisticPanda

Heet patatje :o

Tyoi schreef op dinsdag 18 juli 2017 @ 23:28:
Dat werkt als een tierelier!

Nu nog ff rondgooglen hoe ik dat elke nacht uitvoer zodat een verse geupdate map online staat in de ochtend.

Dank je!
toevoegen aan je crontab van de gebruiker waar je het script wil uitvoeren...(volgende zal elke nacht om half 5, script uitvoeren.

code:
1
2
3
4
5
crontab -e typen in command line

30 4 * * * /locatie/van/script

saven

best hier eens doorlezen, dan snap je het wel
http://www.cronjob.nl/

Marstek 5.12kw v151, CT003 v117, Sagecom Xs212 1P,


Acties:
  • 0 Henk 'm!

  • Tyoi
  • Registratie: September 2008
  • Laatst online: 12-08 21:19

Tyoi

Beddytear

Topicstarter
Heh, ik zat al op https://help.ubuntu.com/community/CronHowto :D

Je merkt op dat je met lftp meerdere bestanden tegelijkertijd kan uploaden, moet je daarvoor het commmando aanvullen? Ik zie namelijk gewoon steeds maar een enkel bestand uploaden alvorens dat ie de volgende doet. Of is dat gezichtsbedrog?

Ik zie trouwens bij mn hostingprovider de term 'explicit FTPS port' staan. Ik moest wel je regeltje 'set ssl:verify-certificate no' in het script zetten.

1) You are on the internet.
2) You are on Tweakers.net.
3) You are reading my signature.
5) You didn't notice that there is no 4.
6) You just checked it.


Acties:
  • 0 Henk 'm!

  • SadisticPanda
  • Registratie: Februari 2009
  • Niet online

SadisticPanda

Heet patatje :o

Tyoi schreef op dinsdag 18 juli 2017 @ 23:45:
Heh, ik zat al op https://help.ubuntu.com/community/CronHowto :D

Je merkt op dat je met lftp meerdere bestanden tegelijkertijd kan uploaden, moet je daarvoor het commmando aanvullen? Ik zie namelijk gewoon steeds maar een enkel bestand uploaden alvorens dat ie de volgende doet. Of is dat gezichtsbedrog?

Ik zie trouwens bij mn hostingprovider de term 'explicit FTPS port' staan. Ik moest wel je regeltje 'set ssl:verify-certificate no' in het script zetten.
Standaard staat het op 1 inderdaad
Aan je mirror command "-P [aantal_connections]" toevoegen en hoppa :) (of "--parallel=[connections]")...zonder quotes uiteraard

Marstek 5.12kw v151, CT003 v117, Sagecom Xs212 1P,


Acties:
  • 0 Henk 'm!

  • Tyoi
  • Registratie: September 2008
  • Laatst online: 12-08 21:19

Tyoi

Beddytear

Topicstarter
Okay, ga ik daar nog even mee experimenteren. Ik meende mij te herrineren dat mijn provider het niet leuk vond als ik in een FTP programma meerdere connecties tegelijkertijd maakte, gooide ie mij er uit en blackliste mijn ip. Vooralsnog duurt de upload maar 5min, maar in de toekomst (nieuwe map) zal dat wellicht een stuk langer kunnen duren.

Ik ga http://www.cronjob.nl/ en http://manpages.ubuntu.com/manpages/xenial/man1/lftp.1.html even goed doorlezen. Moet nog uitzoeken hoe ik een enkel bestandje (index.html) exlude van de mirror opdracht. Standaard staat daar namelijk niet de API van google in die ik nodig heb om de map te laten loaden.
-x index.html :)

Ik dank je nogmaals, ik was al 3 dagen/avonden aan het aan k*tten om dit voor elkaar te krijgen!

[ Voor 2% gewijzigd door Tyoi op 19-07-2017 00:02 . Reden: Eigen shjit beantwoorden ]

1) You are on the internet.
2) You are on Tweakers.net.
3) You are reading my signature.
5) You didn't notice that there is no 4.
6) You just checked it.

Pagina: 1