{"id":97,"date":"2011-02-23T06:46:20","date_gmt":"2011-02-23T06:46:20","guid":{"rendered":"http:\/\/blog.kpolberg.net\/?p=97"},"modified":"2011-02-23T06:46:20","modified_gmt":"2011-02-23T06:46:20","slug":"cleanup-av-shared-memory","status":"publish","type":"post","link":"https:\/\/blog.kpolberg.net\/?p=97","title":{"rendered":"Cleanup av shared memory"},"content":{"rendered":"<p>I forbindelse med d\u00e5rlig &#8220;shared memory&#8221; styring p\u00e5 noen av applikasjonene p\u00e5 jobb ser jeg for meg f\u00f8lgene implementering.<\/p>\n<p>1. List ut shared memory segmenter (ipcs -m)<br \/>\n2. List ut p\u00e5loggede brukere (w)<br \/>\n3. Slett alle shared memory segmenter fra brukere som ikke lenger er p\u00e5logget(ipcrm).<\/p>\n<h6>[bash]<br \/>\n#!\/bin\/bash<br \/>\nself=`basename $0`<\/p>\n<p>if [[ &quot;$1&quot; = &quot;-h&quot; || &quot;$1&quot; = &quot;&#8211;help&quot; ]]; then<br \/>\ncat &lt;&lt;EOM<\/p>\n<p>$self:<br \/>\n $self\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 list leftover<br \/>\n $self -r\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 list and remove leftover<br \/>\n $self -h or &#8211;help this text<\/p>\n<p>EOM<br \/>\nexit 0<br \/>\nfi<\/p>\n<p>if [ &quot;$(id -u)&quot; != &quot;0&quot; ]; then<br \/>\n echo &quot;$self must be run as root&quot;<br \/>\n exit 1<br \/>\nfi<\/p>\n<p>if [ -f \/etc\/redhat-release ] ; then<br \/>\n if [[ ! `cat \/etc\/redhat-release | sed s\/.*release\\ \/\/ | sed s\/\\ .*\/\/` = &quot;3&quot; ]] ; then<br \/>\n echo &quot;$self only tested on RHEL3&quot;<br \/>\n exit 1<br \/>\n fi<br \/>\nfi<\/p>\n<p>ps -ef | egrep -v &quot;clamav|daemon|root|rpc|smmsp|UID|xfs|gdm|ntp&quot; | awk &#8216;{print $1}&#8217; | sort -u &gt; \/tmp\/online_ps<br \/>\nw | egrep -v &quot;root|USER|load average&quot; | awk &#8216;{print $1}&#8217; | sort -u &gt; \/tmp\/online_w<br \/>\ncat\u00a0 \/tmp\/{online_ps,online_w} | sort -u &gt; \/tmp\/online_<br \/>\nfilter=`awk &#8216;{printf &quot;%s&quot;,$0&quot;|&quot;}; END{print &quot;root|gdm|Shared|shmid|Memory|owner|Message|msqid|Semaphore&quot;}&#8217; \/tmp\/online_`<br \/>\nrm -f \/tmp\/{online_ps,online_w,online_}<br \/>\necho &quot;Leftover shared mem&quot;<br \/>\nipcs -m | egrep -v &quot;$filter&quot;<br \/>\necho &quot;Leftover message q&#8217;s&quot;<br \/>\nipcs -q | egrep -v &quot;$filter&quot;<br \/>\necho &quot;Leftover semaphores&quot;<br \/>\nipcs -s | egrep -v &quot;$filter&quot;<\/p>\n<p>if [[ &quot;$1&quot; = &quot;-r&quot; ]]; then<br \/>\n echo &quot;Removing shared mem&quot;<br \/>\n for i in `ipcs -m | egrep -v &quot;$filter&quot; | awk &#8216;\/.\/{print $2}&#8217;`; do ipcrm -m $i;done<br \/>\n echo &quot;Removing semaphores&quot;<br \/>\n for i in `ipcs -s | egrep -v &quot;$filter&quot; | awk &#8216;\/.\/{print $2}&#8217;`; do ipcrm -s $i;done<br \/>\n echo &quot;Removing message q&#8217;s&quot;<br \/>\n for i in `ipcs -q | egrep -v &quot;$filter&quot; | awk &#8216;\/.\/{print $2}&#8217;`; do ipcrm -q $i;done<br \/>\nfi<\/p>\n<p>[\/bash]<\/h6>\n","protected":false},"excerpt":{"rendered":"<p>I forbindelse med d\u00e5rlig &#8220;shared memory&#8221; styring p\u00e5 noen av applikasjonene p\u00e5 jobb ser jeg for meg f\u00f8lgene implementering. 1. List ut shared memory segmenter (ipcs -m) 2. List ut p\u00e5loggede brukere (w) 3. Slett alle shared memory segmenter fra brukere som ikke lenger er p\u00e5logget(ipcrm). [bash] #!\/bin\/bash self=`basename $0` if [[ &quot;$1&quot; = &quot;-h&quot; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[9,10],"tags":[50,6,49],"class_list":["post-97","post","type-post","status-publish","format-standard","hentry","category-data","category-linux-data","tag-ipcs","tag-linux","tag-shared-memory"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blog.kpolberg.net\/index.php?rest_route=\/wp\/v2\/posts\/97","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.kpolberg.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.kpolberg.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.kpolberg.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.kpolberg.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=97"}],"version-history":[{"count":14,"href":"https:\/\/blog.kpolberg.net\/index.php?rest_route=\/wp\/v2\/posts\/97\/revisions"}],"predecessor-version":[{"id":131,"href":"https:\/\/blog.kpolberg.net\/index.php?rest_route=\/wp\/v2\/posts\/97\/revisions\/131"}],"wp:attachment":[{"href":"https:\/\/blog.kpolberg.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=97"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.kpolberg.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=97"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.kpolberg.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=97"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}