안녕하세요..
해달라고 할까봐 놀라셨나요? ㅎㅎ
힌트를 주신다면 저로선 좋겠지만, 가이드 라인을 잡아주시는
것도
많은 도움이 됩니다...
#!/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 연결 ##
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) }'`
## 여기선 쿼리만 하고
done
## 루프 끝나고 mysql 종료 ##
위 스크립트에서 어떻게 여러번 db_select 안하고 할수는
없는지요..
그부분만 해결되면 나머지는 php 로 할수 있을것 같습니다..
좀 가르쳐 주세요~~
|