Pomoc Hurtowe usuwanie danych

sliwa

Passing Basics
Beginner
18 Lipiec 2011
16
7
3
Łódź
QNAP
TS-x59 Pro+
Ethernet
1 GbE
Witam,
Na TS469U-RP mam w folderze Users 70 folderów użytkowników. Użytkownik jest właścicielem takiego folderu i ma pełne prawa do tego folderu i jego zawartości. Z tego wynika, że może m.in. otwierać na swojej stacji roboczej (windows xp i 7) pliki do edycji w aplikacjach. Niestety niektóre programy tworzą i zachowują po zakończeniu edycji pliki typu bak, które po pewnym czasie są nieprzydatne i trzeba je usuwać. Ponieważ prośby i groźby nie skutkuję, więc "sprzątanie" spada na mnie. Chciałbym napisać skrypt, który uruchomiony z poziomu folderu users posprzątałby foldery użytkowników.
Ponieważ słabo znam Linux'a to ośmielam się prosić o pomoc w napisaniu skryptu, który usunąłby bez zadawania zbędnych pytań wszystkie pliki typu bak z folderów użytkowników. Będę zobowiązany za wszelką pomoc: od wskazania dobrej literatury (polski, angielski) przez przykłady po gotowca (pewnie nie jestem adminem z takim problemem)
Pozdrawiam Wszystkich
Śliwa
 
Bash:
/opt/bin/find /location/ -name "*.bak" -exec ls -la {} \;
/opt/bin/find /location/ -name "*.bak" -exec rm {} \;

najpierw sprawdź co Ci skrypt wylistuje (patrz 1 linia) a dopiero potem kasuj (patrz linia 2).PS: akurat bede robił takie sprzatanie jutro na 4 tysiącach folderów :)
na szczescie mam kopie :pa tu masz przykład: Linux / Unix: Find And Remove Files With One Command On Fly
 
  • Lubię to
Reakcje: kaktus
Witam,
Bardzo Wam dziękuję za pomoc.
Zainstalowałem Optware, potem przez putty połączyłem się z QNAP (u mnie nas03) i zrobiłem to co poniżej (tekst skopiowany z putty)

login as: admin
admin@192.168.0.30's password:
[~] # ipkg install findutils
Installing findutils (4.2.32-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/ts509/cross/unstable/findutils_4.2.32-1_i686.ipk
Configuring findutils
update-alternatives: Linking //opt/bin/find to /opt/bin/findutils-find
update-alternatives: Linking //opt/bin/xargs to /opt/bin/findutils-xargs
Successfully terminated.
[~] # /opt/bin/find /users/ -name "*.bak" -exec ls -la {} \
>
/opt/bin/find: missing argument to `-exec'
Z tego rozumiem, że findutils został pomyślnie zainstalowany, więc polecenie find powinno działać. Mój zamiar to znalezienie wszystkich plików typ bak w folderze users i jego podfolderach, dlatego w poleceniu od Pigers zmieniłem "location" na "users". Z tego co mi putty wyświetlił wynika, że źle napisałem to polecenie. Powiedzcie gdzie tkwi błąd?
 
a średnik to kto zjadł ? exec musi byc zakonczony symbolem ; :D

A -exec command must be terminated with a ; (so you usually need to type \; or ';' to avoid interpretion by the shell) or a +. The difference is that with ;, the command is called once per file, with +, it is called just as few times as possible (usually once, but there is a maximum length for a command line, so it might be split up) with all filenames. See this example:
 
Żeby tylko średnik :)
Musiałem jeszcze pokombinować ze ścieżką do users, a potem zapomniałem, że linux rozróżnia wielkie i małe litery. Dzięki wskazówkom od Silasa doinstalowałem sobie mc, więc teraz w putty widzę wszystko. Tak to jest z Windziarzami ;-)
Ale wyszukiwanie działa :). Zapewne można wyeksportować listing ls do pliku tekstowego? Czy można też wymusić pokazanie ilości plików znalezionych i ich sumaryczną wielkość? Czasem może się przydać
Pozostaje zrobić backup i zabrać się za sprzątanie :)
Jeszcze raz dziękuję za pomoc i pozdrawiam
Śliwa
 
  • Lubię to
Reakcje: Silas Mariusz
Kliknij L.Alt+Shift+?
upload_2014-5-30_13-46-8.png


I później Panelize:
upload_2014-5-30_13-46-27.png
 
  • Lubię to
Reakcje: kaktus
To co pokazałeś w mc jest super. I mogę wykonywać operacje na znalezionych plikach :)
Zrobiłem modyfikacje polecenia od Pigers:
Bash:
/opt/bin/find /share/Users/ -name "*.bak" -exec ls -la -h {} \; > /share/users/smieci.txt
Więc mam to w pliku tekstowym, a rozmiary plików są w ludzkich wymiarach tylko brakuje sumy na końcu (takie: znalazłem nnn.nn GB w nnnn plikach) da się to zrobić?
Proszę podrzuć jakąś lekturę na temat poleceń linuxa (taką dla Windziarza, ale z doświadczeniem dos-owym)
 
Bash:
awk '{ SUM+=$5 } END { print SUM/1024/1024}'  smieci.txt
kod pokaze Ci ile MB zajmuja rzeczy podane w pliki (jak chcesz gigabajty to dopisz /1024 )

Jak bedziesz miał chwile to dopisz skrypt który robi takie podsumowanie dla każdego usera a następnie wysyła do niego maila: "Przez Twoje lenistwo zmarnowało się xxx GB danych ! Masz szczęście że admin pracowicie sprząta po Tobie ! Postaw mu to ciężko zasłużone :beer:" :p
 

Użytkownicy znaleźli tą stronę używając tych słów:

  1. sprzątanie