23. juni 2002 - 06:27Der er
5 kommentarer og 1 løsning
Grep + reg.exp
Hey, jeg har et lille problem med nogle mod_perl scripts som åbenbart bruger en del RAM. Derfor har jeg forsøgt at lave et lille script som kigger på ps aux og hvis apache processorne er over 20000+ så genstarter den apache. Min grep ser sådan ud:
if /bin/ps aux | /bin/grep "^apache.*19[0-9]\{3\}.*/usr/sbin/httpd" ; then
Problemet er nu at jeg pt har nogle pid der også hedder 19***, som f.eks.
Hvordan kan jeg få ovenstående grep til at "kigge over" første kolonne af tal - eller f.eks. skippe de "næste" 10 karakterer eller sådan noget.. så jeg er sikker på at resultatet bliver korrekt?
De fleste virksomheder har efterhånden bevist, at AI virker.
Pilotprojekter leverer resultater. Medarbejdere bruger generative AI-værktøjer. Nye use cases dukker op på tværs af organisationen.
egrep kunne sådan set også gøre det: egrep "^[^ \t]*[ \t]*[^ \t]*[ \t]*[^ \t]*[ \t]*[^ \t]*[ \t]*[^ \t]*[ \t]*regex.*"
men det er ikke helt så elegant. :-))
Det var svar på dit spørgsmål. Her er så, hvordan jeg ville gøre det samme (selvom det jo ikke var det du spurgte om):
ps aux | awk -- ' $11 ~ /\/usr\/sbin\/httpd/ { print $2,$6 }' | while read pid rss do if [ $rss -gt 20000 ] then echo -n "Process $pid has has RSS $rss." fi done
ps aux | awk -- ' $11 ~ /\/usr\/sbin\/httpd/ { print $2,$6 }' | while read pid rss do if [ $rss -gt 20000 ] then echo -n "Process $pid has has RSS $rss." fi done
Eller eventuelt:
ps aux | awk -- ' $11 ~ /\/usr\/sbin\/httpd/ { print $2,$6 }' | while read pid rss do if [ $rss -gt 20000 ] then echo -n "At least one of the apache processes has an RSS over allowed maximum. Restarting apache.. " /etc/init.d/apache restart echo "Done." break fi done
Ups, jeg ved godt nok ikke lige, hvorfor jeg skrev det ene kodeekspempel to gange. Det skal naturligvis kun køres en gang, men det giver vel sig selv. :-)
Og ja... Det var åbenlyst... med gentagelsen... Jeg kendte ikke til awk, men det gør jeg nu :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.