Toon posts:

[Crontab] Bestand incremented hernoemen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil een bestand dat ergens op een webserver staat naar een directory kopiëren. Echter, omdat het bestandje telkens veranderd (webcam), is het dus belangrijk dat de bestanden in de map allemaal opeenvolgende bestandsnamen krijgen.

De bedoeling is dan dat er om de 10 secs een cronjob uitgevoerd wordt die het bestandje doet downloaden en in een bepaalde directory doet wegschrijven.

Het cronjob verhaal snap ik wel, maar hoe zorg ik er voor dat het gedownloade bestand opeenvolgend genummerd wordt?

Wie kan mij een duwtje in de goede richting geven?

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

logrotate?

Zaram module kopen voor je glasvezelaansluiting?


Verwijderd

Je kan ook ipv cron gewoon een bash script maken. Cron is niet echt bedoeld voor zulke kleine tijdsschaal. Gewoon loopje met een sleep van 10 secs.

Dat is niet helemaal waar... cron kan je hiermee helpen omdat de tijdsduur van je copy command geen invloed heeft op het moment waarop de volgende iteratie start.

[ Voor 38% gewijzigd door Verwijderd op 13-06-2006 17:18 ]


  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

volgens mij doet wget al standaard wat je wilt ?
code:
1
2
3
4
5
6
7
8
9
10
11
[hylke@kahlan tmp]$ wget http://tweakers.net
--17:13:43--  http://tweakers.net/
           => `index.html.3'
Resolving tweakers.net... 213.239.154.35
Connecting to tweakers.net|213.239.154.35|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]

    [ <=>                                                                                       ] 82,179       505.03K/s

17:13:44 (504.15 KB/s) - `index.html.3' saved [82179]

etc.

God, root, what is difference? | Talga Vassternich | IBM zuigt


  • devzero642
  • Registratie: November 2003
  • Niet online
Kun je niet de datum gebruiken? Bijvoorbeeld date +"%y%m%d%H%M%S"

Verwijderd

Topicstarter
Bedankt voor de reacties allemaal.
Het beste kan ik dus een bash script maken die met wget het bestandje ophaalt, en dan met mv doet renamen.

code:
1
2
3
4
5
6
7
#!/bin/bash

cd /shell/daemon/httpd2/htdocs

wget --http-user=kijk --http-pass=hiero adres.mine.nu/jpg/image.jpg

mv /shell/daemon/httpd2/htdocs/image.jpg /shell/daemon/httpd2/htdocs/cam+"%y%m%d%H%M%S".jpg


Maar hoe zorg ik er nu voor dat de datum/tijd op een juiste manier aan de bestandsnaam toegevoegd worden?

  • Jaap-Jan
  • Registratie: Februari 2001
  • Laatst online: 19:06
Verwijderd schreef op woensdag 14 juni 2006 @ 11:04:
Bedankt voor de reacties allemaal.
Het beste kan ik dus een bash script maken die met wget het bestandje ophaalt, en dan met mv doet renamen.

code:
1
2
3
4
5
6
7
#!/bin/bash

cd /shell/daemon/httpd2/htdocs

wget --http-user=kijk --http-pass=hiero adres.mine.nu/jpg/image.jpg

mv /shell/daemon/httpd2/htdocs/image.jpg /shell/daemon/httpd2/htdocs/cam+"%y%m%d%H%M%S".jpg


Maar hoe zorg ik er nu voor dat de datum/tijd op een juiste manier aan de bestandsnaam toegevoegd worden?
Je komt in de buurt, maar een mogelijkheid om dat te doen is deze:
code:
1
mv /shell/daemon/httpd2/htdocs/image.jpg /shell/daemon/httpd2/htdocs/cam`date +%y%m%d%H%M%S`.jpg


Met die twee ` geef je aan 'plaats de output van dit commando op deze plaats'. Dus 'date +%y%m%d%H%M%S' geeft output en die output wordt gebruikt in de input voor mv.

[ Voor 11% gewijzigd door Jaap-Jan op 14-06-2006 11:53 ]

| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett


Verwijderd

Topicstarter
Werkt perfect! Bedankt!

Hoe laat ik dit scriptje nou loopen met een interval van X-seconden?

  • Wilke
  • Registratie: December 2000
  • Laatst online: 15:10
Verwijderd schreef op woensdag 14 juni 2006 @ 11:04:
Het beste kan ik dus een bash script maken die met wget het bestandje ophaalt, en dan met mv doet renamen.
Nog makkelijker, wat moto-moi bedoelt is dat wget dit al automatisch doet. Dus je hoeft niet eens iets te moven.

Als je met wget een bestand binnenhaalt, maar er bestaat al een bestand met die naam, dan plakt 'ie er vanzelf .0, .1 etc. achter. Probeer maar eens.

Verder, met cron wordt 't denk ik niet nauwkeurig dan eens per minuut. Per seconde zou je bv. gewoon in een script kunnen doen dat je altijd laat lopen:

code:
1
2
3
#!/bin/bash

watch --interval=15 "wget http://wherever"


en dan in een startup script van je PC dit ding in de achtergrond starten.

[ Voor 25% gewijzigd door Wilke op 14-06-2006 12:15 ]


Verwijderd

Topicstarter
Wilke schreef op woensdag 14 juni 2006 @ 12:12:
[...]


Nog makkelijker, wat moto-moi bedoelt is dat wget dit al automatisch doet. Dus je hoeft niet eens iets te moven.

Als je met wget een bestand binnenhaalt, maar er bestaat al een bestand met die naam, dan plakt 'ie er vanzelf .0, .1 etc. achter. Probeer maar eens.
Ja dat was me al duidelijk, maar het is de bedoeling dat de bestanden .jpg als extensie houden.

  • Jaap-Jan
  • Registratie: Februari 2001
  • Laatst online: 19:06
Je kunt het scriptje constant laten loopen:
code:
1
2
3
4
while true; do
        #commando hier
        sleep X;
done;
Als je het script dan eenmalig start met een ampersand (&) erachter (dan start hij op de achtergrond), dan heb je er geen omkijken meer naar.

In plaats van te renamen met mv, kun je wget ook direct naar het goede bestand laten schrijven:
code:
1
wget --output-document=cam`date +%y%m%d%H%M%S`.jpg http://tweakers.net/

[ Voor 30% gewijzigd door Jaap-Jan op 14-06-2006 12:27 ]

| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett


  • Wilke
  • Registratie: December 2000
  • Laatst online: 15:10
Okee dan zoiets?

code:
1
2
3
4
5
nummer=1
while true; do
  wget http://wherever -O /tmp/plaatje$[nummer++].jpg
  sleep 15
done


Beetje creatief zijn met bash enzo, er zijn behoorlijk goede manuals voor bash scripting te vinden op tldp.org.

[ Voor 3% gewijzigd door Wilke op 14-06-2006 12:20 ]

Pagina: 1