Millä tavalla tuhoat kaikki paria sekuntia vanhemmat tiedostot?

Hakemistoon tulee jatkuvalla syötöllä mittausdataa. Uudet tiedostot on ihan ok, koska niissä on käsiteltävää tietoa. Mutta pari sekuntia vanhat joutaa pois automaattisesti.

Millä tavalla tuon toteuttaisi?
9321
Äänestä

Muut lukivat myös

Vastaukset 9

Vanhimmat

Samalla systeemillä kun aivoissa. Otat kierretyökalun nro 1122177

Äänestä

Yksi mahdollisuus olisi, että kansiossa olisi mittaustulospooli tiedostoja, vaikka 128 kappaletta, joiden kunkin päälle aina järjestyksessä kirjoitetaan uusi samanniminen tiedosto uudella mittausdatalla.

Kierrätys kunniaan...

Äänestä

Poistat mittausdatan siinä yhteydessä kun luet sitä?

Äänestä

Jotain on toteutettu erittäin huonosti jos tarvetta tuollaiseen erilliseen poistoon.

Äänestä

Tässä onelineri:

find ./ -type f -exec bash -c 'time=$(stat -c "%Y" "$0"); diff=$(($(date +"%s")-$time)); if [ $diff -gt 2 ];then rm "$0"; fi' {} \;

Tuo poistaa hakemistosta missä suoritetaan kaikki yli 2 sekuntia vanhemmat tiedostot.

Alussa on polku './', jonka vaihtamalla saa sitten halutun hakemiston.

Find-komento käy läpi tiedostot, ja tarkastaa jokaisen kohdalla stat-komennon kautta niiden iän, ja jos on yli 2 sekuntia vanhempi, niin tiedostolle suoritetaan rm-komennolla poisto.

Äänestä
  • Toimii hyvin, hidas kuitenkin on.

    Äänestä

  • Anonyymi00005 kirjoitti:

    Toimii hyvin, hidas kuitenkin on.

    Find-komennossahan on -cmin ja -mmin, jolla voi minuuin tarkkuudellla tähtäillä hakuja, mutta jostain syystä puuttuu -csec ja -msec. Silloin saisi suoraan sen tiedoston selville, eikä tarviisi pyöritellä stat-komennon kautta.

    Bash 5.x:ssä voi korvata komennon date +"%s" suoraan muuttujalla $EPOCHSECONDS https://lists.gnu.org/archive/html/info-gnu/2019-01/msg00010.html

    Komennolla:
    find ./ -type f -printf "%p %C@\n"

    Saa muuten tiedoston muutosajat nanosekunnin tarkkuudella epoch-muodossa. Kyllähän tuosta säätämällä saa monenlaisen version tehtyä.

    Tuon -printf:ään eri tulostusmuotoilut löytää vaikka https://man7.org/linux/man-pages/man1/find.1.html

    Äänestä

Tuo -csec ja -msec puuttuminen on selvä vihje, että on tekemässä jotain arveluttavaa. Esimerkiksi ext4-tiedostojärjestelmässä maksimi commit-aika on asetettu 5 sekunniksi: Tarkoittaa siis, että tiedostojärjestelmään ei ole pakko kirjoittaa muutosta kuin vasta 5s kuluttua. Eli jos koneesta menee sähköt voi menettää viimeisen 5s ajalta datat. Tämä tietystikään ei takaa sitä, että levy olisi vielä 5s päästä kirjoittanut datat levylle. Näin ollen voi olla, että kirjoitusaika päivittyy tiedostolle levyllä vasta 5s päästä sen sulkemisesta - muistipuskurissa aika toki on ajan tasalla.
Eli jos tiedosto on tarkoitus poistaa 2s päästä voi olla, ettei tiedosto missään vaiheessa päädy edes levylle asti, mikä onkin järkevää. Jos haluaa varmistaa tämän jokin ram-levy tyyppinen ratkaisu voi olla järkevä, koska esim. ssd-asemalle tuollainen jatkuva kirjoittaminen on ehkä liian kuluttavaa. Saisiko tiedostojärjestelmän itse asiassa tekemään kirjoituspuskurin tyhjennyksen sen sijaan, että se kirjoittaisi sen levylle?

Äänestä

😍😋😍😋😍😋😍😋😍

😋 K­­u­­u­­m­­a­­­t­­­ ­­­t­y­­t­­ö­t­­ ­o­d­­o­­t­­t­­­a­­­v­­a­­­t­­ ­s­­i­n­u­a­ -> https://nbw.fi/sexygirls?18372167

🔞❤️💋❤️💋❤️🔞💋❤️💋❤️💋🔞

Äänestä

Ketjusta on poistettu 3 sääntöjenvastaista viestiä.

Kommentoi aloitusta


Anonyymi-ap kirjoitti:

Hakemistoon tulee jatkuvalla syötöllä mittausdataa. Uudet tiedostot on ihan ok, koska niissä on käsiteltävää tietoa. Mutta pari sekuntia vanhat joutaa pois automaattisesti.

Millä tavalla tuon toteuttaisi?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu