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?
Millä tavalla tuon toteuttaisi?
Turvaa tilisi vahvistamalla puhelinnumerosi. Voit silloin palauttaa unohtuneen salasanan tekstiviestillä.
Ketjusta on poistettu 3 sääntöjenvastaista viestiä.
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 9
Vanhimmat
Samalla systeemillä kun aivoissa. Otat kierretyökalun nro 1122177
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...
Poistat mittausdatan siinä yhteydessä kun luet sitä?
Jotain on toteutettu erittäin huonosti jos tarvetta tuollaiseen erilliseen poistoon.
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.
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
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?
😍😋😍😋😍😋😍😋😍
😋 Kuumat tytöt odottavat sinua -> https://nbw.fi/sexygirls?18372167
🔞❤️💋❤️💋❤️🔞💋❤️💋❤️💋🔞