Ú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
Hirdetés
- Keresünk dokkolókat
- Telefon felvásárlás!! iPhone 15/iPhone 15 Plus/iPhone 15 Pro/iPhone 15 Pro Max
- AKCIÓ! Gigabyte H610M i5 12400F 32GB DDR4 512GB SSD RTX 3060Ti 8GB Rampage SHIVA Be Quiet! 730W
- Telefon felvásárlás!! Samsung Galaxy A13/Samsung Galaxy A33/Samsung Galaxy A53
- Fujitsu USB Port Replicator PR09 docking station (1x5K vagy 2x4K felbontás) (DisplayLink)
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest