Kirjoittaja Aihe: Kuvien uudelleen nimeäminen.  (Luettu 3489 kertaa)

Heca

  • Käyttäjä
  • Viestejä: 4
    • Profiili
Kuvien uudelleen nimeäminen.
« : 01.02.08 - klo:18.11 »
Tallennan lämpötiloja digitempillä ja rrdtoolilla kotiverkossa olevalla koneella missä on Kubuntu, Apache ja rrdtool.
rrdtool tekee kolme eri kuvaa - päivä.jpg viikko.jpg ja kuukausi.jpg.
Nyt haluaisin nämä jutut tomimaan :
-joka päivä klo. 23.59 kuvasta "päivä.jpg" otetaan kopio ja nimetään se menneen päivän mukaisesti eli päivä.jpg --> 01.02.2008.jpg.
-joka sunnuntai klo.23.59 kuvasta "viikko.jpg" otetaan kopio ja nimetään se menneen viikon mukaisesti eli viikko.jpg --> 01.2008.jpg.
-kuukauden viimeisenä päivänä klo.23.59 otetaan kopio kuvasta "kuukausi.jpg ja nimetään se menneen kuukauden mukaan eli kuukausi.jpg --> tammikuu.2008.jpg.
Ja vielä että ne kopiot tulisi omiin kansioihin, päivä, viikko, kuukausi.

Onnistuis varmaan rdtoolilla mutten osaa....
Tai sitten ihan skriptillä linuxissa tai php:lla?

mgronber

  • Käyttäjä
  • Viestejä: 1458
    • Profiili
Vs: Kuvien uudelleen nimeäminen.
« Vastaus #1 : 01.02.08 - klo:22.55 »
-joka päivä klo. 23.59 kuvasta "päivä.jpg" otetaan kopio ja nimetään se menneen päivän mukaisesti eli päivä.jpg --> 01.02.2008.jpg.
-joka sunnuntai klo.23.59 kuvasta "viikko.jpg" otetaan kopio ja nimetään se menneen viikon mukaisesti eli viikko.jpg --> 01.2008.jpg.
-kuukauden viimeisenä päivänä klo.23.59 otetaan kopio kuvasta "kuukausi.jpg ja nimetään se menneen kuukauden mukaan eli kuukausi.jpg --> tammikuu.2008.jpg.
Ja vielä että ne kopiot tulisi omiin kansioihin, päivä, viikko, kuukausi.

Jos tämän lisäisi crontabiin niin homma saattaisi toimia. Kohdehakemistojen tulee olla olemassa ja hakemistopolkujen on syytä olla absoluuttisia. Nimeämiset eivät mene kuten sinä halusit vaan omasta mielestäni paremmalla tavalla. Jos haluat tehdä omalla tavallasi niin voit vapaasti soveltaa tätä esimerkkiä.

Koodia: [Valitse]
59 23 * * * cp "lähdepolku/päivä.jpg" "kohdepolku/päivä/$(date +%Y-%m-%d).jpg"
59 23 * * 7 cp "lähdepolku/viikko.jpg" "kohdepolku/viikko/$(date +%GW%V).jpg"
59 23 28-31 * * cp "lähdepolku/kuukausi.jpg" "kohdepolku/kuukausi/$(date +%Y-%m).jpg"

Kuukauden viimeinen päivä on hieman ongelmallinen ja käytännössä tämä kopioi kaikkina päivinä välillä 28-31 tiedoston toiseen hakemistoon. Seuraavan päivän tiedosto jyrää aina edellisenä päivänä kopioidun tiedoston joten seuraavan kuun alkaessa on hakemistossa edellisen kuun viimeiseltä päivältä oleva tiedosto.

Heca

  • Käyttäjä
  • Viestejä: 4
    • Profiili
Vs: Kuvien uudelleen nimeäminen.
« Vastaus #2 : 03.02.08 - klo:16.54 »
-joka päivä klo. 23.59 kuvasta "päivä.jpg" otetaan kopio ja nimetään se menneen päivän mukaisesti eli päivä.jpg --> 01.02.2008.jpg.
-joka sunnuntai klo.23.59 kuvasta "viikko.jpg" otetaan kopio ja nimetään se menneen viikon mukaisesti eli viikko.jpg --> 01.2008.jpg.
-kuukauden viimeisenä päivänä klo.23.59 otetaan kopio kuvasta "kuukausi.jpg ja nimetään se menneen kuukauden mukaan eli kuukausi.jpg --> tammikuu.2008.jpg.
Ja vielä että ne kopiot tulisi omiin kansioihin, päivä, viikko, kuukausi.

Jos tämän lisäisi crontabiin niin homma saattaisi toimia. Kohdehakemistojen tulee olla olemassa ja hakemistopolkujen on syytä olla absoluuttisia. Nimeämiset eivät mene kuten sinä halusit vaan omasta mielestäni paremmalla tavalla. Jos haluat tehdä omalla tavallasi niin voit vapaasti soveltaa tätä esimerkkiä.

Koodia: [Valitse]
59 23 * * * cp "lähdepolku/päivä.jpg" "kohdepolku/päivä/$(date +%Y-%m-%d).jpg"
59 23 * * 7 cp "lähdepolku/viikko.jpg" "kohdepolku/viikko/$(date +%GW%V).jpg"
59 23 28-31 * * cp "lähdepolku/kuukausi.jpg" "kohdepolku/kuukausi/$(date +%Y-%m).jpg"

Kuukauden viimeinen päivä on hieman ongelmallinen ja käytännössä tämä kopioi kaikkina päivinä välillä 28-31 tiedoston toiseen hakemistoon. Seuraavan päivän tiedosto jyrää aina edellisenä päivänä kopioidun tiedoston joten seuraavan kuun alkaessa on hakemistossa edellisen kuun viimeiseltä päivältä oleva tiedosto.

Toimii muuten hyvin mutta toi /$(date .... juttu ei tunnu toimivan.
Tässä ote syslogista:

Feb  3 16:39:01 xxx /USR/SBIN/CRON[23184]: (root) CMD (cp /var/www/lampo/day.jpg /var/www/lampo/paiva/$(date +)
Feb  3 16:40:01 xxx /USR/SBIN/CRON[23214]: (root) CMD (cp /var/www/lampo/week.jpg /var/www/lampo/viikko/$(date +)
Feb  3 16:40:01 xxx /USR/SBIN/CRON[23218]: (root) CMD (cp /var/www/lampo/month.jpg /var/www/lampo/kuukausi/fff.jpg)
Feb  3 16:40:02 xxx /USR/SBIN/CRON[23219]: (root) CMD (/home/xxx/update.sh)
Feb  3 16:40:02 xxx /USR/SBIN/CRON[23215]: (root) MAIL (mailed 62 bytes of output but got status 0x0001 )

Tässä crontab:
*/1 * * * * cp /var/www/lampo/day.jpg /var/www/lampo/paiva/$(date +%Y-%m-%d).jpg
*/1 * * * * cp /var/www/lampo/week.jpg /var/www/lampo/viikko/$(date +%GW%V).jpg
# */1 * * * * cp /var/www/lampo/month.jpg /var/www/lampo/kuukausi/$(date +%Y-%m).jpg
*/1 * * * * cp /var/www/lampo/month.jpg /var/www/lampo/kuukausi/fff.jpg

Toi fff.jpg on ainoa kuva mikä tulee kansioon, noi missä on toi date juttu ei toimi.
Syslogissa se näkyy pelkkä $(date +).

Kun komentokehotteesa ajan "cp /var/www/lampo/day.jpg /var/www/lampo/paiva/$(date +%Y-%m-%d).jpg" silloin kuva tulee oikein.
Eli toi crontab ei osaa tota komentoa?

mgronber

  • Käyttäjä
  • Viestejä: 1458
    • Profiili
Vs: Kuvien uudelleen nimeäminen.
« Vastaus #3 : 03.02.08 - klo:17.47 »
Toimii muuten hyvin mutta toi /$(date .... juttu ei tunnu toimivan.

Minun mokani. Nyt kun lukaisin crontabin manuaalia niin siellä sanotaan ihan selvästi että prosenttimerkit tulkitaan komennossa rivinvaihtoina jollei niiden edessä ole kenoviivaa (\). Lisää siis kenoviivat jokaisen prosenttimerkin eteen ja sen jälkeen tuon pitäisi toimia.

Koodia: [Valitse]
59 23 * * * cp "lähdepolku/päivä.jpg" "kohdepolku/päivä/$(date +\%Y-\%m-\%d).jpg"
59 23 * * 7 cp "lähdepolku/viikko.jpg" "kohdepolku/viikko/$(date +\%GW\%V).jpg"
59 23 28-31 * * cp "lähdepolku/kuukausi.jpg" "kohdepolku/kuukausi/$(date +\%Y-\%m).jpg"

Risto H. Kurppa

  • Käyttäjä
  • Viestejä: 3024
  • Useita Kubuntuja ajossa.
    • Profiili
    • http://risto.kurppa.fi
Vs: Kuvien uudelleen nimeäminen.
« Vastaus #4 : 03.02.08 - klo:20.03 »
HeCa: kuulostaa mielenkiintoiselta projektilta! Haluaisitko kirjoittaa jonkin esittelypätkän projektista blogiin: (blog.ubuntu-fi.org) esimerkkinä siitä, mihin kaikkeen Linux/Ubuntu taipuu. Jos kiinnostaa, ota yhteyttä esim. yksityisviestillä tms.

r
UUSI UBUNTUN KÄYTTÄJÄ: SÄÄSTÄ AIKAASI LUKEMALLA  -> TÄMÄ <-

Heca

  • Käyttäjä
  • Viestejä: 4
    • Profiili
Vs: Kuvien uudelleen nimeäminen.
« Vastaus #5 : 03.02.08 - klo:20.47 »
Toimii muuten hyvin mutta toi /$(date .... juttu ei tunnu toimivan.

Minun mokani. Nyt kun lukaisin crontabin manuaalia niin siellä sanotaan ihan selvästi että prosenttimerkit tulkitaan komennossa rivinvaihtoina jollei niiden edessä ole kenoviivaa (\). Lisää siis kenoviivat jokaisen prosenttimerkin eteen ja sen jälkeen tuon pitäisi toimia.

Koodia: [Valitse]
59 23 * * * cp "lähdepolku/päivä.jpg" "kohdepolku/päivä/$(date +\%Y-\%m-\%d).jpg"
59 23 * * 7 cp "lähdepolku/viikko.jpg" "kohdepolku/viikko/$(date +\%GW\%V).jpg"
59 23 28-31 * * cp "lähdepolku/kuukausi.jpg" "kohdepolku/kuukausi/$(date +\%Y-\%m).jpg"

No nyt toimii, Kiitos kaikista neuvoista!!
Säätö jatkuu...