2181 번 글의 답장글: Re: 여기까지는 했는데.. |
글쓴이: 산이
[홈페이지]
|
글쓴날: 2004년 10월 12일 01:23:13 화(새벽) |
조회: 1305 |
[김성민]님이 남기신 글:
>안녕하세요..
>해달라고 할까봐 놀라셨나요? ㅎㅎ
>힌트를 주신다면 저로선 좋겠지만, 가이드 라인을 잡아주시는
것도
>많은 도움이 됩니다...
>
>#!/bin/bash
>
>user_list=`cat /root/user.cfg | grep -v "^#" | awk '{printf $1"
"'}`
>
>for user in $user_list ; do
> user_home_dir=`cat /etc/passwd | grep -w "^$user" | awk -F: '{print
$6}'`
> user_home_size=`du -sm $user_home_dir | awk '{ print strtonum($1) }'`
>
> mysql -e "update diskcheck set disk='$user_home_size' where
userid='$user'" -utestuser -p1111 testuser_db
>
>done
>
>exit 0
>
>
>여기까지는 했습니다.
>/root/user.cfg 에
>id_name_1
>id_name_2
>와 같이 아뒤를 나열하고 해당 하는 아뒤를 /etc/passwd 에서
홈디렉토리를 읽도록 했습니다.
>
>
>되긴 하는데, 위에서와 같이 mysql 커넥션을 루프 도는 만큼
계속 해야 하는데요.
>
>위 스크립트의 결과를 /root/check.sh > /root/result.txt 와 같이
파일로
>만들고 그걸 다시 insert.sh 와 같은 파일에서 mysql에 적용하도록
하면 되긴 합니다.
>
>근데 그럴려면 cron 으로 처음에 check.sh 가 도는 시간과 그
결과를 적용하는 시간을 별도로 지정해서 2개의 cron 작업이
되어야 하거든요??
>
>## mysql 연결 ##
>
RUN_SQL='/root/result.sql'
cat /dev/null > $RUN_SQL
>for user in $user_list ; do
> user_home_dir=`cat /etc/passwd | grep -w "^$user" | awk -F: '{print
$6}'`
> user_home_size=`du -sm $user_home_dir | awk '{ print strtonum($1) }'`
>
echo "update diskcheck set disk='$user_home_size' where userid='$user';\n"
>> $RUN_SQL
>## 여기선 쿼리만 하고
>
>done
>
>## 루프 끝나고 mysql 종료 ##
>
mysql -utestuser -p1111 testuser_db < $RUN_SQL
이런식으로 해보세요.
>위 스크립트에서 어떻게 여러번 db_select 안하고 할수는
없는지요..
>
>그부분만 해결되면 나머지는 php 로 할수 있을것
같습니다..
>좀 가르쳐 주세요~~
========================================
|
이전글 : 여기까지는 했는데..
다음글 : Re: Re: 여기까지는 했는데..
|
from 61.254.75.78
JS(Redhands)Board 0.4 +@
|