안녕하세요 2CPU 유저님들. 쉘 스크립트 관련하여 문의드립니다 ㅜㅜ
쉘스크립트를 최근에 사용할 일이 있어서 공부하게 되었는데,
uid가 500이상인 계정을 구분하고, 그 계정중에서 10mb 이상되는 리스트를 아래와 같이 출력하려고 합니다.
기본적으로 출력은 되는데 계속 아래 구간에서 설정된 EXMB 값을 계산하지 못하고 있습니다.
awk '$7 > $EXMB'
실제 출력된 값을 보아도 용량이 959밖에 안되는데 10mb 이상으로 출력 되는 것 또한 이상하여 보고 있습니다
혹시 코드중에 어디부분이 문제인지 알수 있을까요?
#!/bin/sh
SETSIZE=10
# 점검 용량 MB단위 설정
EXMB=`expr $SETSIZE \* \( 1024 \* 1024 \)`
for name in $(cut -d: -f1,3 /etc/passwd | awk -F: '$2>499{print $1}')
# /etc/passwd 에서 UID가 500이상인 계정을 구분한다.
do
echo "사용자 $name의 $SETSIZE MB 초과 파일목록 / 용량"
find /usr /tmp /home -user $name -type f -ls | awk '$7 > $EXMB' | awk '{print "O경로:" $11, "/용량:" $7}'
# 지정된 경로에서 UID 500이상인 계정이 소유한 파일의 용량을 비교, 출력한다.
echo ""
done
exit
happy day
Áï, Æнº¿öµå ÆÄÀÏÀÇ Çʵ屸ºÐÀÚ 1, 3¹ø°°¡ ¹Ýµå½Ã ¼ýÀÚ·Î µÇ¾î ÀÖ³ª¿ä ?
ȤÀº ÆÄÀÎµå ¸í·É¾îÀÇ Ãâ·Â °á°ú°¡ ¸ðµÎ ¿øÇÏ´Â Çü½ÄÀ¸·Î Ãâ·ÂµÇ´ÂÁö È®ÀκÎÅÍ ÇϽðí awk¸¦ °Å½Ã´Â°Ô ÁÁÀ»µí¿ä....
find /usr /tmp /home -user $name -type f -size +10M | xargs ls -lh | awk '{print "»ç¿ëÀÚ"$3"ÀÇ 10MB ÃÊ°ú ÆÄÀϸñ·Ï\n¿ë·® : "$5" , °æ·Î : "$9}' | sort -u
ÀÌ·¸°Ô Çϸé Á»´õ Á¤¸®°¡ ÀÌ»Ú°Ô µË´Ï´Ù.
°è»ê½Ä¿¡¼ °á°ú°ªÀÌ Á¦´ë·Î ¾È³ª¿Â´Ù¸é
EXMB ¸¦ echo·Î Âï¾î ¾î¶² °ªÀ» °¡Á®¿À´ÂÁö º¸´Â°Ô ÁÁ½À´Ï´Ù.
Á¤±Ô½ÄÀº ³»°¡ ¿øÇϴ´ë·Î ´Ù¾çÇÏ°Ô È°¿ëÀÌ °¡´ÉÇؼ
À§¿¡ Á¦½ÃÇÑ°Åó·³ Á»´õ ´ú º¹ÀâÇÏ°Ô ÇÒ ¼öµµ ÀÖ°í
¶Ç ´Ù¸¥ ¹æ¹ýÀ» ´Ù¾çÇÏ°Ô È°¿ëÇÒ ¼öÀÖ½À´Ï´Ù.~ ÈÀÌÆÃ!!
º¯°æ Àü : find /usr /tmp /home -user $name -type f -ls | awk '$7 > $EXMB' | awk '{print "O°æ·Î:" $11, "/¿ë·®:" $7}'
º¯°æ ÈÄ : find /usr /tmp /home -type f -ls | grep -i $name | awk "\$7 > $EXMB " | awk '{print " ¡Ü°æ·Î:" $11, "/ ¿ë·®:" $7}'
ÀÌ·¸°Ô 󸮸¦ Çغ¸¾Ò¾î¿ä ¤¾¤¾ ±³Àç¿¡ Àִ°Ŷû ´Ù¸£³×¿ä;;
À§ÀÇ ±¸¹®µµ Çϳª¾¿ Å×½ºÆ® Çغ¸µµ·Ï ÇÏ°Ú½À´Ï´Ù. °¨»çÇÕ´Ï´Ù^^;