[Linux] automatisch bestand op webserver FTP'en

Pagina: 1
Acties:

  • freeco
  • Registratie: Juni 2001
  • Laatst online: 10:24
Ik wil van tijd tot tijd automatisch een XML filetje met daarin het IP-adres van mijn server op mijn webaccount gooien via FTP. Om het XML filetje automatisch te genereren is het me al gelukt om een scriptje te maken, nu resten me nog 2 vraagjes:

* Hoe kan ik in Linux (tekst-mode) bijvoorbeeld om het uur dat scriptje laten uitvoeren?

* Hoe zet ik dat filetje op mijn webaccount via FTP? Ik weet dat dit kan in Windows/DOS met het commando "ftp -v -n -i -s:ftpcommands.txt"
De optie -s voert de commando's in het tekstbestand uit ipv om input te vragen van de user. In het linux commando voor FTP vind ik deze mogelijkheid niet onmiddellijk terug... Enkel -n en -i lijken overeen te komen tussen de beide OSen.
Het bestand met commando's bevat:
[file]
open ...host...
user ...user... ...password...
ascii
put ip.xml
bye
[/file]
Heb ik hiervoor een ander commando nodig?

  • Wilke
  • Registratie: December 2000
  • Laatst online: 14:01
Dat is in UNIX heel simpel, het kan met bijna elk programma. Bij mij werkt het iig bij ncftp en vast ook wel bij de 'gewone' ftp client.

Je doet gewoon:

code:
1
ncftp -u user -p password host.domein < scriptje


En in scriptje zou dan zoiets staan:

code:
1
2
cd /htdocs
put test.txt


Of wat je er ook maar voor commando's in zou willen zetten. Works for me :)

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 13-05 17:46

Kees

Serveradmin / BOFH / DoC
Elk half uur uitvoeren: crontab

Bestand uploaden, maak een file aan met welke commando's je geeft, dus bijvoorbeeld:
code:
1
2
3
4
open ftp://user:pass@ftp.isp.nl
cd dir/waar/jje/het/wilt
put /path/to/lokale/file
quit

en doe dan (in de crontab) 30 * * * * /path/to/ftp < /path/to/commandos >/dev/null 2> &1

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


  • freeco
  • Registratie: Juni 2001
  • Laatst online: 10:24
hmm, lukt niet precies...

"open ftp://user:pass@host" geeft "Name or service not known"
kan de oorzaak zijn omdat mijn password een "." en ";" bevat? Ben niet echt van plan om dat te veranderen...

als ik manueel de opdrachten invoer zoals in mijn eerste post, dan werkt alles perfect. Waarom kan dat niet in het commando-bestandje?
Als ik dit uitvoer: "ftp < ftpcommands.txt" dan krijg ik een prompt "Password:Name (host:root):"

weet maar weinig raad hiermee :/

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 13-05 17:46

Kees

Serveradmin / BOFH / DoC
dan doe je het op de manier die wilke aangaf:
code:
1
ncftp -u user -p password host.domein < scriptje

en dan wel het password voorzien van " :).

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


  • freeco
  • Registratie: Juni 2001
  • Laatst online: 10:24
hmm, ncftp... effe moeten zoeken
die werkt onder linux ook? Wilke had het over UNIX...

edit:
ok, found
eerst zoeken, dan reageren :)
ik probeer morgen nog wel es verder met dit probleempje...

[ Voor 39% gewijzigd door freeco op 22-01-2003 23:06 ]


Verwijderd

kun je voor dit soort dingen niet beter sitecopy of weex gebruiken?

  • pinball
  • Registratie: Oktober 1999
  • Niet online

pinball

Electric Monk

lftp kan dit ook, en het kan evt. ook met perl:

code:
1
2
3
4
5
6
7
#!/usr/bin/perl
use Net::FTP;

$ftp = Net::FTP->new("ftp.mysite.com", Debug => 0) or die "Could not connect: $@\n";
$ftp->login("username","password");
$ftp->put( "temp/index.html","/home/myuser/index.html");
$ftp->quit;

code opslaan als ftp.pl, chmod 700 ftp.pl en huppakee :)

edit:

$ftp->binary(); stond er nog tussen, hoeft niet echt bij een .html bestand :D

[ Voor 26% gewijzigd door pinball op 23-01-2003 19:53 . Reden: domme fout ]

Whenever you find that you are on the side of the majority, it is time to reform.


  • xzenor
  • Registratie: Maart 2001
  • Laatst online: 14-10-2022

xzenor

Ja doe maar. 1 klontje suiker.

in sh.. simpel...

code:
1
2
3
4
5
6
7
8
#!/bin/sh
ftp $MACHINENAAM << END
  bin
  put file1.txt
  get file2.txt
  put blaat.avi
  bye
END


nu moet er dus nog ingelogd worden automatisch..
dat doe je dan met de .netrc file
in man ftp zie je het een en ander staan, maar hier een korte uitleg.

vi ~/.netrc

en daar zet je in:

machine hierdenaamvandemachine
login hierdeloginnaamvoordiemachine
password hierhetpasswordvandiemachine

zorg dat ie alleen readable is voor jou!
dus chmod 700 ~/.netrc

en dan werkt het als een trein..
ik moet zeggen dat de perl manier hier boven ook wel netjes is..
maar als je nou helemaal NIETS van perl weet of snapt dan is deze manier waarschijnlijk makkelijker...

[ Voor 3% gewijzigd door xzenor op 23-01-2003 08:30 ]


  • imdos
  • Registratie: Maart 2000
  • Laatst online: 13-05 12:04

imdos

I use FreeNAS and Ubuntu

Laatste optie; ncftpput

Dan pas alles op de cli :)

pvoutput. Waarom makkelijk doen, als het ook moeilijk kan! Every solution has a new problem


  • xzenor
  • Registratie: Maart 2001
  • Laatst online: 14-10-2022

xzenor

Ja doe maar. 1 klontje suiker.

kan ook, maar dan moet je wel ncftp hebben :)
Pagina: 1