KrEdEnS | 2020-03-21 22:59:24 UTC | #1
Cześć, dzisiaj przedstawię wam mały skrypt bash, który usuwa pliki starsze niż X dni o danej godzinie lub w danym dniu, ewentualnie co kilka minut. Możemy to wykorzystać np do usuwania starych backupów z poradnika: https://forum.lvlup.pro/t/tworzenie-kopii-zapasowej-wyznaczonego-folderu-z-cyklicznym-powtarzaniem/8443
Skrypt:
find ścieżka_do_plików -mtime +ilość_dni -exec rm {} \;
Przykłada użycia:
find /home/backup/minecraft/ -mtime +7 -exec rm {} \;
Uprawnienia:
chmod 700 nazwaskryptu.sh
Jeżeli chcemy, żeby skrypt sam się uruchamiał należy dodać go do crona, (wpisujemy w terminalu):
crontab -e
Następnie dopisujemy to w pliku, który otworzyliśmy poleceniem wyżej:
00 13 * * * /sciezka_do_skryptu/nazwaskryptu.sh
Dzięki temu nasz skrypt uruchomi się każdego dnia o godzinie 13:00 :slight_smile:
Poniżej zamieszczam wyjaśnienie jak działa ustawienie konkretnej godziny, czy dnia:
--------------------------------------------------------------------------------------------------------------------------------------------------------------- * * * * * komenda do wykonania - - - - - | | | | | | | | | +----- dzień tygodnia (0 - 7) (niedziela=0, poniedziałek=1, wtorek=2, ..., niedziela=7) (niedziela może być przedstawiona jako 0 lub 7) | | | | | | | +------- miesiąc (1 - 12) | | | | | +--------- dzień miesiąca (1 - 31) | | | +----------- godzina (0 - 23) | +------------- minuta (0 - 59) Możemy także stosować: - * - zawsze (każda minuta, każda godzina, każdy dzień, każdy miesiąc, każdy dzień tygodnia) - Zakres: x-y – czyli od „x” do „y”, np. „1-5” to każda minuta/godzina/dzień/miesiąc od 1 do 5 - Przerwa: */x – np. „*/8” to polecenie wykonane co 8 minut/godzin/dni… - Kolejne wartości: x,y,z – np. „2,5,8” może oznaczać polecenie wykonane w 2, 5 i 8 minucie/godzinie… - Wiele zadań w jednym wpisie: ; rozdzielamy polecenia ---------------------------------------------------------------------------------------------------------------------------------------------------------------
Kamilkime | 2018-10-06 11:12:43 UTC | #2
[quote=”KrEdEnS, post:1, topic:8447”]
czy dania:
[/quote]
Literówka, ale poza tym fajny i prosty sposób, przynajmniej dla mnie jako osoby, która zna ledwo podstawy obsługi linuxa :)
KrEdEnS | 2018-10-06 11:22:23 UTC | #3
W sumie to można jeszcze usuwać z rozszerzeniem
find < ścieżka do plików > -name ‘*.< rozszerzenie >’ -ctime +< ilość dni > -delete
Dudix | 2020-01-22 17:58:33 UTC | #4
[quote=”KrEdEnS, post:3, topic:8447”]
find < ścieżka do plików > -name ‘*.< rozszerzenie >’ -ctime +< ilość dni > -delete
[/quote]
find /home/minecraft -name ‘*.log’ -ctime +1 -delete
Dobrze :)?
KrEdEnS | 2020-01-22 18:04:31 UTC | #5
testuj ;)
Dudix | 2020-01-22 21:22:06 UTC | #6
cos wlasnie nie dziala :(
KrEdEnS | 2020-01-22 22:51:41 UTC | #7
[quote=”KrEdEnS, post:1, topic:8447”]
find /home/backup/minecraft/ -mtime +7 -exec rm {} ;
[/quote]
użyj tego
@Dudix
Lumpiasty | 2020-01-23 10:52:32 UTC | #9
[quote=”Dudix, post:8, topic:8447”]
usunięcie wszystkich plików .log starsze niż 1dzien
[/quote]
Głupotę robisz, jak ci je będzie trzeba zrozumiesz dlaczego. To nie jest rozwiązanie na śmietnik w logach.
find /Home/Minecraft -name *.log -mtime +1 -exec rm {} \;
swoją drogą to nie zadziała
KrEdEnS | 2020-01-23 10:43:42 UTC | #10
Aaaa faktycznie wklejanie kodu na lvlup zjadło \
Musi być przed ;
Fajnie, że jest napisane a forum zjada. Halo niech ktoś nakarmi forum :)
Komenda:
https://haste.kredens.ovh/ledilihoro.bash
aggankx | 2020-01-24 14:30:53 UTC | #12
Może się nie znam ale raczej jeżeli serwer się wyłącza to coś jest nie tak i zamiast automatycznie usuwać logi nie lepiej je przejrzeć i rozwiązać problem?
Dudix | 2020-01-24 20:22:44 UTC | #13
błąd jest taki, ze jeżeli serwer jest wyłączony a screen chce odpalić serwer pisze w logach ze za mało miejsca w ramie. tak czy siak nadal działa serwer bez problemow.