[이현철]님이 남기신 글:
>언제나 산이님의 통쾌한 답변에 감사합니다..
>오늘도 한수 배워서 배가 아주 불려서..허허허
합니다..ㅋㅋ
>아주 잘 해결된것같습니다..
>
>오늘은 다른것을 하나 더 여쭈어 볼려고 하는데요..
>만일 파일이 아래와 같이
>bash-2.05# ls -al |more
>total 546240
>drwxr-xr-x 4 root bin 11264 Sep 7 19:00 .
>drwxr-xr-x 9 root bin 512 Aug 5 2003 ..
>-rw-rw-rw- 1 root root 13904752 Jul 1 05:00
20040701_access.log
>-rw-rw-rw- 1 root root 7751643 Jul 2 05:00
20040702_access.log
>-rw-rw-rw- 1 root root 6524302 Jul 3 05:00
20040703_access.log
>-rw-rw-rw- 1 root root 9205570 Jul 4 05:00
20040704_access.log
>-rw-rw-rw- 1 root root 5915410 Jul 6 05:00
20040706_access.log
>-rw-rw-rw- 1 root root 6194908 Jul 7 05:00
20040707_access.log
>-rw-rw-rw- 1 root root 8044288 Jul 8 05:00
20040708_access.log
>-rw-rw-rw- 1 root root 9633671 Jul 9 05:00
20040709_access.log
>-rw-rw-rw- 1 root root 6455530 Jul 10 05:00
20040710_access.log
>
>위와같이 매일 로그가 생겨나고 있습니다.
>이것을 cron을 이용해서 삭제할때
>한달에 한번씩 1달전분 자료를 전부삭제할려면.
>어떤 방법이 좋을까요?
>여하튼 머리가 대개 잘 안돌아가네요..
>
만약 이와 같은 알고리즘이면 매월 1일인 경우는 전월 로그가
하나도
없어집니다.
따라서 현재 날짜를 기준으로 1주일 전이나 한달전을 기준으로
해야 합니다.
-------------------
#!/bin/sh
IFS='
'
WDIR='/home/backup'
cd $WDIR || exit 1
## 날짜 역순으로 정렬
#
LISTS=`ls -lt`
i=1;
for file in $LISTS ; do
if [ "$i" -gt 7 ] ; then
rm -f "$file"
fi
i=$(($i+1
done
---------------------------------
이런식으로 하면 됩니다.
>
>
>[산이]님이 남기신 글:
>
>>
>>[이현철]님이 남기신 글:
>>
>>>-----------------------------------------
>>>답변자가 기본적으로 참고할 내용입니다.
>>>- 배포판(옵션) :
>>>- 커널버전(옵션)
:
>>>- 데몬버전(예:apache
1.3.27) :
>>>- 데몬설치유형(RPM/컴파일/기타)
:
>>>-----------------------------------------
>>>기존에 있는 서버의 유저 어카운트와 shadow 화일을
가지고
>>>새로운 서버에 유저를 등록하려고 합니다..
>>>
>>>cat /etc/shadow
>>>##################################################
>>>test:$1$p5Zu7Kem$d2K7XDeWp5Qn41ZCctjyo.:12565:0:99999:7::
>>>testuser:H6.CGThArD.GE:12657:0:99999:7:::
iga-test:$1$xvI/cF/w$Jb/a82rLBq6VyZRMRtxES.:12663:0:99999:7:::
>>>##################################################
>>>
>>>만일 위와 같다면 위에 내용중에 유저id와 shadow를
>>>파일로 뽑아 내려고 합니다.
>>>
>>>이것을 뽑아서
>>>
>>>cat list.txt
>>>##################################################
>>>test:$1$p5Zu7Kem$d2K7XDeWp5Qn41ZCctjyo
>>>iga-test:$1$xvI/cF/w$Jb/a82rLBq6VyZRMRtxES
>>>##################################################
>>>이런씩으로 뽑을려고 합니다.
>>>어떤씩으로 하면 될지요?
>>>
>>
>>shell> awk -F":" '{printf "%s:%s\n",$1,$2}' /etc/shadow | tee
-a new.pwd
>>
>>이런식으로 하면 new.pwd 에 생성됩니다.
>>
>>그러나 사용자를 추가할 경우는 이런 방법은 좋지
않습니다.
>>
>>>그리고 위와같이 뽑은 파일을 새로운 서버에 자동으로
유저가 등록
>>>되도록할려고
합니다.
>>>
>>>chpasswd 를 이용해서 할려고하는데요.
>>>아래의 스크립트를 이용해서 위에 가져온 list.txt파일을
이용할수 없는지요.
>>>[root@oracle home]# vi add.sh
>>>############################
>>>#!/bin/bash
>>>useradd -g 1000 -c web -d /export/home/$1 -m -s /bin/bash -k /etc/skel
$1
>>>chmod 755 /export/home/$1
>>>mkdir /export/home/$1/html
>>>chown $1 /export/home/$1/html
>>>chgrp customer /export/home/$1/html
>>>echo $1:$2 | chpasswd
>>>##############################
>>>
>>>
>>> 아니면 어디 좋은 방법을 좀 일러 주십시요...
>>>
>>>..좋은 하루되세요..
>>
>>일단 사용자가 많다면 passwd shadow group gshadow
>>을 복사한 다음에 새로운 시스템에 그대로 추가(append)해
주면
>>됩니다.
>>
>>예를 들어(passwd 파일인 경우)
>>
>> - 기존의 passwd 파일을 복사한 파일(이하 'A') :
>> 500 이하의 ID 는 무시하고 500 이상만 남도록 편집
>> - 새로운 시스템의 passwd(이하 'B'):
>> 500 이하의 ID 만 남도록 하고 나머지는 모두 삭제
>>
>>위와 같이 각각 편집한 다음에 A 파일을 B 서버로
옮겨놓고
>>
>>sheel> cat A >> B
>>
>>이런식으로 append 하면 됩니다.
>>나머지 shadow, group gshadow 도 마찬가지로,
>>
>>그 다음 계정 홈디렉토리를 만들어 줘야 하는데
>>useradd 명령어로 만들어 주면 안됩니다. 이미 passwd 파일에
있기
>>때문에, 따라서 이런 경우는 shell 스크립트로 짜서 돌리면
됩니다.
>>
>>만약 기존의 시스템 A 와 똑같은 홈디렉토리이면
기존의 A passwd
>>파일에서 홈 디렉토리 이름을 뽑아서 mkdir 로 만들어
주고,
>>그렇지 않아면 아주 다른 새로운 홈디렉토리이면,
apppend 된 passwd
>>파일을 일괄적으로 먼저 수정해줘야 합니다.
>>
>>간단하게 하는 방법은
>>
>>------------------
>>#!/bin/sh
>>IFS='
>>'
>>
>>for line in `cat /etc/passwd` ; do
>> ACCOUNT=`echo "$line" | awk -F ":" '{print $1}'`
>> UID=`echo "$line" | awk -F ":" '{print $3}'`
>> GID=`echo "$line" | awk -F ":" '{print $4}'`
>> HOMEDIR=`echo "$line" | awk -F ":" '{print $6}'`
>>
>> if [ $UID -ge 500 ] ; then
>> echo "account : $ACCOUNT , $UID:GID $HOMEDIR"
>> fi
>>
>>done
>>
>>------------------
>>
>>위의 스크립트를 수정해서 사용해 보세요
>
>========================================
========================================
|