Ik ben al een tijdje aan het stoeien maar het lukt mij niet helemaal om een bepaalde setup te krijgen die ik wil.
Ik heb een leverancier die bepaalde bestanden elk uur klaar zet op een server die ik via internet kan benaderen door middel van SFTP. Authenticatie gebeurd door middel van een gebruikersnaam en een private key waarvan de leverancier uiteraard alleen het publieke gedeelte heeft.
Dit alles werkt prima. Ik kan via Filezilla (Windows) als PHP (zowel Linux als Windows) verbinding maken en ook lukt het om bestanden te downloaden.
Ik wil echter graag wat automatiseren en dit lukt niet met Filezilla en PHP is daar alles behalve de goede taal voor (gaat om grotere bestanden en dit kost ontzettend veel resources wat op NAS systemen eigenlijk altijd erg karig is). Het moet vanaf meerdere systemen mogelijk zijn (CentOS, Ubuntu maar ook NAS'sen die op Linux draaien). Ik had de goede hoop om "rsync" te gebruiken hiervoor maar ik loop tegen een issue aan.
Als ik het volgende commando draai:
Dan krijg ik altijd dezelfde foutmelding:
Als ik Google mag geloven betekent dit dat mijn shell die wordt gebruikt niet "clean" is maar er al data wordt verstuurd voordat ik uberhaupt een filetransfer start. Ze geven aan dat je dit kan testen door even via SSH te connecten met het volgende commando om te kijken of je output krijgt:
Als ik dit commando echter draai krijg ik géén toegang, ik krijg de volgende melding:
Ik kan dus niet verbinden om output te testen. Of de melding "This service allows sftp connections only." is juist de output waar rsync over valt maar hoe kan ik dat zeker weten?
Ik heb even een zetje nodig in de goede richting, hopelijk kan ik daarna zelf alles fiksen
kwestie van wat crons hoop ik
Ik heb een leverancier die bepaalde bestanden elk uur klaar zet op een server die ik via internet kan benaderen door middel van SFTP. Authenticatie gebeurd door middel van een gebruikersnaam en een private key waarvan de leverancier uiteraard alleen het publieke gedeelte heeft.
Dit alles werkt prima. Ik kan via Filezilla (Windows) als PHP (zowel Linux als Windows) verbinding maken en ook lukt het om bestanden te downloaden.
Ik wil echter graag wat automatiseren en dit lukt niet met Filezilla en PHP is daar alles behalve de goede taal voor (gaat om grotere bestanden en dit kost ontzettend veel resources wat op NAS systemen eigenlijk altijd erg karig is). Het moet vanaf meerdere systemen mogelijk zijn (CentOS, Ubuntu maar ook NAS'sen die op Linux draaien). Ik had de goede hoop om "rsync" te gebruiken hiervoor maar ik loop tegen een issue aan.
Als ik het volgende commando draai:
code:
1
| rsync -azv -e "ssh -i /home/wobbel/auth.key" wobbel@sftp.server.nl:/data/monitor/ /home/wobbel/sftp/ |
Dan krijg ik altijd dezelfde foutmelding:
code:
1
2
3
| protocol version mismatch -- is your shell clean? (see the rsync man page for an explanation) rsync error: protocol incompatibility (code 2) at compat.c(178) [Receiver=3.1.3] |
Als ik Google mag geloven betekent dit dat mijn shell die wordt gebruikt niet "clean" is maar er al data wordt verstuurd voordat ik uberhaupt een filetransfer start. Ze geven aan dat je dit kan testen door even via SSH te connecten met het volgende commando om te kijken of je output krijgt:
code:
1
| ssh -i /home/wobbel/auth.key wobbel@sftp.server.nl |
Als ik dit commando echter draai krijg ik géén toegang, ik krijg de volgende melding:
code:
1
2
| This service allows sftp connections only. Connection to sftp.server.nl closed. |
Ik kan dus niet verbinden om output te testen. Of de melding "This service allows sftp connections only." is juist de output waar rsync over valt maar hoe kan ik dat zeker weten?
Ik heb even een zetje nodig in de goede richting, hopelijk kan ik daarna zelf alles fiksen