Új hozzászólás Aktív témák
-
Penty
aktív tag
válasz
bambano #2898 üzenetére
...a tartalmát minden nap áthelyezem egy "archiv" mappába. A mappa neve, amibe áthelyezem az aktuális dátum.
PL:
/media/backup/winscp/trash
/media/backup/winscp/trash_archive/20240628Nekem ebből az jön le, hogy ez nem archívum, hanem egy sima mappa, aminek a trash_archive nevet adta és ezen belül vannak a 20240628, 20240629 stb. nevű almappák és aztán azon belül az aktuális nap trash mentései, akár valami tar.xz, akár csak simán átmásolva, akár más egyéb formában. Így működik az általam vázolt script, mivel törli a legkisebb nevű, vagyis a legrégebbi mappát, benne a cuccokkal.
De lehet, hogy én értelmeztem félre a dolgot, ez esetben elnézést.
-
Penty
aktív tag
válasz
kovbandi82 #2887 üzenetére
Ha jól látom, a trash_archive/ mappában lévő dátum nevű mappanevek lényegében emelkedő számok (és feltételezem, hogy csak ezek vannak benne):
20240625
20240626
20240627
stb.
Megpróbálhatod egyszerűen csak megszámoltatni és az első 14 legnagyobb nevűt megtartani, majd a legkisebb számút (a legrégebbit) mindig töröltetni egy scripttel.COUNT=$(find /media/backup/winscp/trash_archive/* -type d | wc -l)
OLDEST=$(find /media/backup/winscp/trash_archive/* -type d | head -1)
if [ $COUNT -gt 14 ]
then
rm -rf $OLDEST
else
:
fiIntegráld bele a mentés scripted elejére a fentit. Ha jelenleg kevesebb mint 14 mentésed van, akkor nem fogja 14 (két két) fölé engedi a mentések számát. Ha több, akkor a script csak egyet fog törölni a pl. 35-ből, így elsőnek törölnöd kell kézileg pár mentés mappát, hogy 14 alá csökkenjen a számuk.
-
Penty
aktív tag
Sziasztok!
Van egy szöveges fájl, benne dátumok, mögöttük feljegyzések, kb. így:2023-02-23 Valami szöveg a múltból
2023-02-28 Valami szöveg a múltból
2023-03-02 Valami szöveg a múltból
2023-03-15 Valami szöveg a múltból
2023-04-28 Valami szöveg a múltból
2023-05-20 Valami szöveg a múltból
2023-05-28 Mai napi szöveg
2023-06-01 Jövőbeni szöveg
2023-06-03 Jövőbeni szövegCsinálnék egy scriptet, ami a múltbéli sorokat törli a fenti fájlból. Eddig jutottam:
#!/bin/sh
NOTES=~/teszt
A=$(date --date="$(awk 'NR==1{print $1}' $teszt)" +%Y%m%d)
B=$(date +%Y%m%d)
if [ "$A" -lt "$B" ]; then
sed -i '1d' $teszt
elif [ "$A" -eq "$B" ]; then
notify-send "$(awk 'NR==1{print}' $teszt)"
else
notify-send "Üresjárati nap"
fiHa lefuttatom a scriptet, szépen kitöröl egyet a régmúlt dátumú sorok közül, ha sokszor futtatom, akkor előbb-utóbb elfogynak a régi bejegyzések, és a két notify-send sor valamelyikét fogja lefuttatni attól függően, hogy van-e mára valami feljegyzés, vagy nincs.
Hogyan lehetne megoldani azt, hogy csak egyszer kelljen a scriptet futtatni, de akkor az összes régi dátumot kitörölje? Gondolom valami while read line; do bla-bla; done kellene, de kicsit belebonyolódtam.
Új hozzászólás Aktív témák
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7600X 32/64GB RAM RTX 5060 Ti 8GB GAMER PC termékbeszámítással
- 10magos! Fémvázas! HP EliteBook 860 G9 i7-1255U 16GB 512GB 16" FHD+
- Lenovo Thinkpad L14 Gen 4 -14"FHD IPS - i5-1335U - 8GB - 256GB - Win11 - 2 év garancia - MAGYAR
- ÚJ! AKRacing Arctica gamer szék
- HIBÁTLAN iPhone 13 Pro Max 256GB Gold -1 ÉV GARANCIA -Kártyafüggetlen, MS3758, 91% Akkumulátor
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő