[Linux/Bash] Bestanden kopieren nadat FTP upload klaar is.

Pagina: 1
Acties:

  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 06-02 01:44

Nick_S

++?????++ Out of Cheese Error

Topicstarter
Ik zit met een Bash script te spelen, welke bestanden kopieert en daarna verplaatst vanuit een directory naar een andere directory.
#!/bin/bash

cp /home/user/*.xml /opt/prog_user/input
mv /home/user/*.xml /opt/prog_user/processed
Heel simpel, en het werkt. :) Handig in crontab, klaar, dacht ik.

So far, so good. Het probleem echter is, dat de originele bestanden via FTP worden geupload en als dit script loopt tijdens het uploaden, worden er halve bestanden gecopieerd en verplaatst. En dat is niet de bedoeling.

Ik heb al gekeken naar een soort after upload script van de FTP server (vsftpd) maar volgens mij ondersteunt deze dat niet. Hoe kan ik toch zien of bestanden al helemaal geupload zijn of nog bezig?

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


  • DeMoN
  • Registratie: Maart 2001
  • Laatst online: 06-01 23:13

DeMoN

Pastafari

Ik zat te denken aan een check d.m.v. een MD5-sum maar dat is niet erg praktisch. De client moet dan eerst de MD5 van de files weten, dan aan de server doorgeven en de server moet dan checken of de MD5 klopt. Maar hoe wil je dat doen?

Misschien is het mogelijk om in je cp/mv scriptje een check op de output van 'netstat' te laten doen die dan kijkt of er FTP verkeer van een bepaalde host afkomt. En zo ja, dat hij dan even slaapt voor 5 minuten en dan weer opnieuw die cp/mv (en netstat check) gaat doen.
Theoretisch lijkt me dit mogelijk en zeker als de scripts vaak vanaf dezelfde host worden geupload.

Maar dit lijkt me niet de mooiste (praktische?) oplossing. Ben benieuwd of anderen hier evt. nog leuke oplossingen hebben :)

Gamertag: Cosmicv0id
"Het woord Gods is voor mij niets meer dan een expressie en het product van menselijke zwakheid. De Bijbel is een verzamelwerk van legendes die achtenswaardig zijn maar ook primitief en kinderachtig.'' - Albert Einstein


Verwijderd

Wat je eens kan proberen is je script de size van het file laten bepalen en 10 seconden ofzo later nog eens.
Als de size veranderd is, dan 1 minuten sleepen en opnieuw checken.

Natuurlijk is dit moeilijk als je transfer even stil hangt.

  • Arjan
  • Registratie: Juni 2001
  • Niet online

Arjan

copyright is wrong

je kan geen lock-file laten uploaden/removen door dat andere script?
wel zo makkelijk lijkt me.

oprecht vertrouwen wordt nooit geschaad


  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 06-02 01:44

Nick_S

++?????++ Out of Cheese Error

Topicstarter
We gaan even met de klant communiceren of zo'n lock file mogelijk is, anders gaan we inderdaad naar bestandsgrootte over tijd kijken.

Bedankt voor de input!

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'