Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam wszystkich!
Jestem w trakcie pisania skryptu i napotkałem na problem, którego nie potrafię obejść.
Dla każdego katalogu pierwszego poziomu, starszego niż 3 miesiące, skrypt sprawdza czy jest w nim więcej niż 1000 plików (w całym drzewie). Jeżeli tak to dla każdego katalogu drugiego poziomu wykonuje archiwum, a zarchiwizowane dane usuwa po sprawdzeniu czy archiwum utworzyło się prawidłowo.
Nie wiem jak zmodyfikować to co napisałem tak, żeby skrypt kompresował i usuwał katalogi drugiego poziomu zamiast te pierwszego poziomu.
Patrząc na poniższy schemat: w tej chwili kompresuje mi katalogi "Katalog 1" i "Katalog 2", a potrzebuję żeby kompresował katalogi "Subfolder 1" i "Subfolder 2"
Przykładowo ścieżka to /home/ivano/kompresowanie/
Katalog 1
Subfolder 1
Subfolder 2
Katalog 2
Subfolder 1
Subfolder 2
Jakieś pomysły, idee, propozycje?
find /home/ivano/kompresowanie/ -maxdepth 1 -type d -mtime +90 | while read KATALOG ; do if [[ ! -f "$KATALOG.tgz" ]] && [[ "$(find "$KATALOG" -type f -printf \\n | wc -l)" -gt 1000 ]] ; then if tar czf "$KATALOG.tgz" "$KATALOG" ; then rm -r "$KATALOG" else rm -f "$KATALOG.tgz" fi fi done exit
Offline
Prosząc o rozwiązanie zadania domowego warto jest dopisać: oferuję ... (i tu jakaś kwota) ;-)
Offline
Nie proszę o gotowe rozwiązanie tylko nakierowanie mnie co jest nie tak w tym co stworzyłem oraz w którą stronę powinienem myśleć żeby skrypt spełniał wszystkie założenia ;)
Offline