bash- skrypt do autoamtyzacji dem
wenus
20.01.2011
lecz... nie śmiga mi . Skrypt oprócz opcji które opisałem posiada - NIE PAKOWANIE AKTUALNIE NAGRYWANYCH DEM <- najważniejsze oraz usuwanie dem po xx czasie .
Przy próbie odpalenia wyskakuje
./skrypt.sh ================ find: paths must precede expression: 1101201319-de_dust.dem Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression] 0 files. Listing old files
Pozdrawiam i licze na pomoc kogoś bardziej obeznanego w tej materii
Portek
20.01.2011
Skrypty do kompresji i wyświetlania dem - Nieoficjalny polski support AMX Mod X
A tu wersja "łopatologiczna"
#!/bin/bash
DEMDIR="/home/dema/cstrike" # folder z demami - tam gdzie HTLV nagrywa
DESCDIR="/home/dema/spakowane" # folder docelowy z demami spakowanymi
cd $DEMDIR
gzip -5 *.dem
mv $DEMDIR/*.gz $DESCDIR
find $DEMDIR/*.gz mtime +7 -exec rm {} \;
wenus
20.01.2011
Co do tego co napisałeś Czy skrypt ominie demo aktualnie nagrywane ? mtime +7 domyślam się ze ta linijka odpowiada za ta funkcje ale wole sie upewnić
Pozdrawiam !
Portek
20.01.2011
Ogólnie rzecz biorąc gzip nie powinien brać się za pliki które nadal się przetwarzają (generują), jeśli tak będzie to skorzystaj z tego:Co do tego co napisałeś Czy skrypt ominie demo aktualnie nagrywane ? mtime +7 domyślam się ze ta linijka odpowiada za ta funkcje ale wole sie upewnić
#!/bin/bash
DEMDIR="/home/dema/cstrike" # folder z demami - tam gdzie HTLV nagrywa
DESCDIR="/home/dema/spakowane" # folder docelowy z demami spakowanymi
cd $DEMDIR
find $DEMDIR -cmin 30 -exec gzip -5 {} \;
mv $DEMDIR/*.gz $DESCDIR
find $DEMDIR/*.gz -mtime +7 -exec rm {} \;
Skrypt nie będzie ruszał pliku aż do momentu kiedy czas ostatniej modyfikacji będzie większy niż 30min. Ostatnia linijka odpowiada za kasacje dem (spakowanych) które mają więcej niż 7 dni.
wenus
20.01.2011
lekko go zedytowałem
#!/bin/bash DEMDIR="/home/test/dema" # folder z demami - tam gdzie HTLV nagrywa DESCDIR="/home/test/dema1" # folder docelowy z demami spakowanymi DEST_DIR=$(date +%F) mkdir "/home/test/dema1/${DEST_DIR}" cd $DEMDIR gzip -5 *.dem mv $DEMDIR/*.gz $DESCDIR/DEST_DIR/ find $DEMDIR/*.gz mtime +7 -exec rm {} \;
dodałem tworzenie katalogu z aktualna data.
Ale mimo wszytsko skrypt rzuca błędami
./test3.sh gzip: *.dem: No such file or directory mv: cannot stat `/home/test/dema/*.gz': No such file or directory find: `/home/test/dema/*.gz': No such file or directory find: `mtime': No such file or directory find: `+7': No such file or directory
dodam ze w DEMDIR="/home/test/dema" sa pliki z demami blabla.dem
Użytkownik wenus edytował ten post 20.01.2011 19:01
Portek
20.01.2011
Idąc Twoim tropem:
#!/bin/bash DEMDIR="/home/test/dema" # folder z demami - tam gdzie HTLV nagrywa DESCDIR="/home/test/dema1" # folder docelowy z demami spakowanymi DEST_DIR=$(date +%F) if [ ! -d ${DESCDIR}/${DEST_DIR} ]; then mkdir "${DESCDIR}/${DEST_DIR}" fi gzip -5 $DEMDIR/*.dem mv ${DEMDIR}/*.gz ${DESCDIR}/${DEST_DIR}/ find ${DESCDIR}/${DEST_DIR}/*.gz -mtime +7 -exec rm {} \;
wenus
20.01.2011
a jak w tym nowym kodzie dodac wersje wyslania po xx czasie od osttaniej edycji ??
Użytkownik wenus edytował ten post 20.01.2011 20:01
Portek
20.01.2011
find ${DEMDIR}/*.gz -mtime 7 -exec mv {} ${DESCDIR}/${DEST_DIR}/ \;Aczkolwiek pewnie się pomyliłem w instrukcji -exec ;]
7 to ilość dni (24*n)
Lub wersja mniej nazwijmy to dalekosiężna:
find ${DEMDIR}/*.gz -cmin 30 -exec mv {} ${DESCDIR}/${DEST_DIR}/ \;Gdzie 30 to ilość minut
wenus
20.01.2011
Portek
20.01.2011
#!/bin/bash DEMDIR="/home/test/dema" # folder z demami - tam gdzie HTLV nagrywa DESCDIR="/home/test/dema1" # folder docelowy z demami spakowanymi DEST_DIR=$(date +%F) if [ ! -d ${DESCDIR}/${DEST_DIR} ]; then mkdir "${DESCDIR}/${DEST_DIR}" fi gzip -5 $DEMDIR/*.dem #mv ${DEMDIR}/*.gz ${DESCDIR}/${DEST_DIR}/ find ${DEMDIR}/*.gz -cmin 30 -exec mv {} ${DESCDIR}/${DEST_DIR}/ \; # przenoszenie po 30min find ${DESCDIR}/${DEST_DIR}/*.gz -mtime +7 -exec rm {} \; # kasowanie po 7 dniach
wenus
20.01.2011
Dodano 20 styczeń 2011 - 21:39:
ale odczekiwanie xx minut po ostatniej edycji to chyba nie działa :<
problem jest taki ze z wyslanie do innej lokalizacji skrypt czeka ale z spakowaniem niem :<
Użytkownik wenus edytował ten post 20.01.2011 21:53
Portek
20.01.2011
wenus
20.01.2011
plik jest chroniony przez 30min tylko przed przeniesieniem , potrzebna by była regułka która też go nie spakuje :<
Użytkownik wenus edytował ten post 20.01.2011 22:45
Portek
21.01.2011
Debian 5 minimal 32bit.Na jakim distro to sprawdzałes?
Pytanie tylko po co? Plik spakuje się dopiero wtedy kiedy gzip będzie miał doń dostęp, czyli kiedy ten przestanie się generować, no ale:plik jest chroniony przez 30min tylko przed przeniesieniem , potrzebna by była regułka która też go nie spakuje :<
#!/bin/bash DEMDIR="/home/test/dema" # folder z demami - tam gdzie HTLV nagrywa DESCDIR="/home/test/dema1" # folder docelowy z demami spakowanymi DEST_DIR=$(date +%F) if [ ! -d ${DESCDIR}/${DEST_DIR} ]; then mkdir "${DESCDIR}/${DEST_DIR}" fi find ${DEMDIR}/*.dem -cmin 30 -exec gzip -5 {} \; # pakowanie po 30min od zakończenia nagrywania find ${DEMDIR}/*.gz -cmin 30 -exec mv {} ${DESCDIR}/${DEST_DIR}/ \; # przenoszenie po 30min find ${DESCDIR}/${DEST_DIR}/*.gz -mtime +7 -exec rm {} \; # kasowanie po 7 dniach
Pomijam fakt że to ciut mało optymalna wersja, no ale ;]
wenus
21.01.2011
a do tego krzyczy błędem
./tp_hltv.sh find: `/home/test/dema1/2011-01-21/*.gz': No such file or directory
Użytkownik wenus edytował ten post 21.01.2011 11:11
Portek
21.01.2011
Pliki nie istnieją, więc w sumie się nie dziwięa do tego krzyczy błędem
./tp_hltv.sh find: `/home/test/dema1/2011-01-21/*.gz': No such file or directory
#!/bin/bash DEMDIR="/home/test/dema" # folder z demami - tam gdzie HTLV nagrywa DESCDIR="/home/test/dema1" # folder docelowy z demami spakowanymi DEST_DIR=$(date +%F) if [ ! -d ${DESCDIR}/${DEST_DIR} ]; then mkdir "${DESCDIR}/${DEST_DIR}" fi find ${DEMDIR}/*.dem -cmin 30 -exec gzip -5 {} \; # pakowanie po 30min od zakończenia nagrywania find ${DEMDIR}/*.gz -cmin 30 -exec mv {} ${DESCDIR}/${DEST_DIR}/ \; # przenoszenie po 30min find ${DESCDIR}/${DEST_DIR}/*.gz -mtime +7 -exec rm {} \; 2> /dev/null # kasowanie po 7 dniachKomunikaty o błędach z kasowaniem plików starszych niż 7 dni polecą do katalogu /dev/null (kosz), więc skrypt w razie problemów krzyczał nie będzie - a przez pierwszy tydzień będzie krzyczał co chwila
Sprawdziłeś wersję powyżej? Ta na 100% nie tyka się plików generowanych wcześniej niż 30min temu.hm tez jade na debianie . i własnie umnie pakuje mimo tego ze plikjest nadal używany :< nie wiem czemu
wenus
21.01.2011
Wyświetl postUżytkownik wenus dnia 21 styczeń 2011 - 11:05 napisał
a do tego krzyczy błędem
./tp_hltv.sh
find: `/home/test/dema1/2011-01-21/*.gz': No such file or directory
Pliki nie istnieją, więc w sumie się nie dziwię
#!/bin/bash
DEMDIR="/home/test/dema" # folder z demami - tam gdzie HTLV nagrywa
DESCDIR="/home/test/dema1" # folder docelowy z demami spakowanymi
DEST_DIR=$(date +%F)
if [ ! -d ${DESCDIR}/${DEST_DIR} ]; then
mkdir "${DESCDIR}/${DEST_DIR}"
fi
find ${DEMDIR}/*.dem -cmin 30 -exec gzip -5 {} \; # pakowanie po 30min od zakończenia nagrywania
find ${DEMDIR}/*.gz -cmin 30 -exec mv {} ${DESCDIR}/${DEST_DIR}/ \; # przenoszenie po 30min
find ${DESCDIR}/${DEST_DIR}/*.gz -mtime +7 -exec rm {} \; 2> /dev/null # kasowanie po 7 dniach
Komunikaty o błędach z kasowaniem plików starszych niż 7 dni polecą do katalogu /dev/null (kosz), więc skrypt w razie problemów krzyczał nie będzie - a przez pierwszy tydzień będzie krzyczał co chwila
ale w ogóle skrypt nie pakuje ani nie przenosi plikow ( pliki są z wczoraj ) coś chyba nie gra z tymi warunkami przenies jesli spakuj jesli
Dodano 22 styczeń 2011 - 00:59:
:< need help Portek przybywaj
Użytkownik wenus edytował ten post 21.01.2011 12:26
Portek
22.01.2011
Że tak powiem jestem lekko niedysponowany - choroba, więc jest jak jest.:< need help Portek przybywaj
#!/bin/bash DEMDIR="/home/test/dema" # folder z demami - tam gdzie HTLV nagrywa DESCDIR="/home/test/dema1" # folder docelowy z demami spakowanymi DEST_DIR=$(date +%F) if [ ! -d ${DESCDIR}/${DEST_DIR} ]; then mkdir "${DESCDIR}/${DEST_DIR}" fi find ${DEMDIR}/*.dem -cmin +30 -exec gzip -5 {} \; # pakowanie po 30min od zakończenia nagrywania find ${DEMDIR}/*.gz -cmin +30 -exec mv {} ${DESCDIR}/${DEST_DIR}/ \; # przenoszenie po 30min find ${DESCDIR}/${DEST_DIR}/*.gz -mtime +7 -exec rm {} \; 2> /dev/null # kasowanie po 7 dniachPowiem tak, człowiek stary, a głupi, rzeczywiście nie miało prawa się pakować i przenosić - a bynajmniej nie wszystko, bo zjadłem znaki "+"
wenus
22.01.2011
Portek
22.01.2011
A nie takie miało być założenie? Pakowanie po 30min od nagrania, przesyłanie pod 30min od spakowania, czyli zanim demo zostanie przeniesione mija defacto godzina od nagrania (+ rozbieżność crontaba, bo nie wywołujesz skryptu co minute? )hm teraz tak patrze na działanie skryptu . I zastanawia mnie czy pakowanie on tez traktuje jako ostatnia edycja ? bo wysłał plik dopiero jak zmniejszyłem oczekiwanie z 30 min na 1 min w linijce wysylania do innego folderu . Analizując dalej ażeby "odchudzić " go delikatnie można wywalić wpis dotyczacy czekania w linijce wysylania bo skrypt i tak nie wyśle pliku jesli nie bedzie mial archiwa gz . a archiwum gz nie utworzy sie szybciej niz 30 min od ostatniej edycji pliku