1-1
/var/log 안에 있는 파일들의 갯수를 구하는 명령줄 또는 스크립트를 만드세요(스크린샷)
ls -l /var/log |grep -v 합계 |awk '{ count+=1 } END {print "파일수:"count}'
1-2
/var/log 안에 있는 파일들의 총합을 구하는 명령줄 또는 스크립트를 만드세요(스크린샷)
ls -l /var/log |grep -v 합계 |awk { sum+=$5 } END {print "파일총합: " sum " byte"}'
1-3
/var/log 안에 있는 파일들의 평균값을 구하는 명령줄 또는 스크립트를 만드세요(스크린샷)
ls -l /var/log |grep -v 합계" |awk '{ sum+=$5; count+=1 } END {print "파일평균: " sum/count " byte"}'
1-4
해당내용(1-1,1-2,1-3)을 1분마다 /backup에 [시간].log 형식으로 파일이 생성될수 있도록 cron을 작성하세요
mkdir /backup
d=$(date +%Y%m%d%H%M)
echo "" >> /backup/$DATE.log
echo "$(date "+%Y년 %m월 %d일 %H시 %M분 ")" >> /backup/$d.log
echo "" >> /backup/$d.log
ls -l /var/log |grep -v 합계 |awk '{ sum+=$5; count+=1 } END { print "파일수: " count " ; print 파일총합: " sum " byte" ;print "파일평균: " sum/count " byte" }' >> /backup/$d.log
vi /etc/crontab
*/1 * * * * root /shell/1-4.sh
chmod 755 1-4.sh
sh 1-4.sh
[진행 전 양쪽 기본 설정 ]
yum install rsync -y
yum install xinetd -y
yum install net-tools -y
yum install bind* -y
service rsyncd restart
netstat -lntup |grep rsync
rsync 873/tcp > 서비스 정상적으로 작동하는지 확인
firewall-cmd --permanent --add-service rsyncd 방화벽 풀기
firewall-cmd --reload
firewall-cmd --list-all
(잘열렸나 확인)
2
rsync를 써서 /log/var가 원격지에 1분마다 /backup.log에 update될수 있도록 스크립트를 진행하세요
[백업된 파일은 원본파일이 지워져도 삭제 안되야함]
환경: server 192.168.10.10 (rsync 사용)
client 192.168.10.20
rsync 허용 범위는 192.168.10.0/24 입니다
백업된 파일은 원본파일이 지워져도 삭제 안되야함
=제출내용=
2-1. rsync 설정내용 및 크론 내용
[ 클라 설정 입니다. ]
rsync 설정내용(/etc/rsyncd.conf)
(vi 로 진입 # configuration example:
ㄴ 내용 아래 내용 추가 )
192.168.10.20
# /etc/rsyncd: configuration file for rsync daemon mode
# See rsyncd.conf man page for more options.
# configuration example:
path=/
hosts allow=192.168.10.0/24
uid=0
gid=0ZZ
:wq
[ 서버 설정 입니다. ]
크론 설정내용(/etc/crontab)
(vi로 진입 제일 하단에 내용 기입)
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
ㄴ 이 아래 기입해주시면 됩니다.
*/1 * * * * root sh /backup/log/sevas.sh
( 1분 마다 sevas.sh 실행 )
2-2. 스크립트코드 내용
(mkdir -p /backup/log 생성 > cd로 이동 안에서 vi sevas.sh 로 파일 만들어서 진행 )
#!/bin/bash
for i in 192.168.10.20
ㄴ 192.168.10.20 을 i에 할당
do
mkdir -p /backup/log/log_$i
ㄴ /backup/log/log_$i 디렉토리를 만듬
date=$(date "+%Y-$m-%d %H시 %M분 ")
ㄴ date에 현재 시간으로 초기화한값을 할당
echo "" >> /backup/log/log.txt
ㄴ 첫실행시 /backup/log/log.txt를 생성 + 실행시마다 한줄을 빈공간으로 추가
echo "" >> /backup/log/log.txt
ㄴ 실행시 한줄을 빈공간으로 추가
echo "### ["$i] / ["$date"] 백업작업 ###" >> /backup/log/log.txt
ㄴ 그다음줄에 파일이름 및 실행시킨 시간을 추가함
echo "" >> /backup/log/log.txt
ㄴ 실행시 한줄을 빈공간으로 추가
rsync -avz --progress $i:/var/log /backup/log/log_$i >> /backup/log/log.txt
ㄴ 변수 i의 192.168.10.20의/var/log/*의 파일들을 /backup/log/log_$i에 복사하고 log.txt에 로그를 추가
find /backup/log/log_$i -ctime +15 -exec rm -rf {} \;
ㄴ /backup/log/log_$i의 속성값이 15분동안 변경이 없으면 삭제한다 (앞에있는 명령어를 실행하면 없을때 생성하고 있으면 변경하는것이기 때문에 실행안됨)
done
---------------------------------------------------------------------------------------------------
[ 설명 없는 버전 ]
for i in 192.168.10.20
do
mkdir -p /backup/log/log_$i
date=$(date "+%Y-%m-%d %H시 %M분")
echo "" >> /backup/log/log.txt
echo "" >> /backup/log/log.txt
echo "### [$i] / [$date] 백업작업 ###" >> /backup/log/log.txt
echo "" >> /backup/log/log.txt
rsync -avz --progress $i:/var/log/* /backup/log/log_$i >> /backup/log/log.txt
find /backup/log/log_$i -ctime +15 -exec -rm -rf {} \;
done
---------------------------------------------------------------------------------------------------
2-3. 파일이 업데이트 되는 내용 (/backup/log/log.txt 와 /backup/log/log[IP]/log ) cat로 확인하면 됨
1 : ssh-keygen -t rsa //양쪽다
ㄴ [ 키생성 명령어 ]
service rsyncd restart
[ 치면 아래 내용 나옴 ]
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa): {ENTER} 입력
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): {ENTER} 입력
Enter same passphrase again: {ENTER} 입력
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
SHA256:FmYMGZBQGo1v9CUoM8EYueSrgTnWpCeYaRD5mfoSn9U root@sevas20.com
The key's randomart image is:
+---[DSA 1024]----+
|.*+*o+oo |
|=.*o= oo. |
|o+.O . o= |
|o.+.o .o . |
|+==. . S |
|@* o. E. |
|+*oo |
|o + |
| . |
+----[SHA256]-----+
1번 cat ~/.ssh/id_rsa.pub|ssh root@192.168.10.20 "cat >> .ssh/authorized_keys"
ㄴ 192.168.10.20(클라이언트한테) 공용키를 전송
2번 scp /root/.ssh/id_dsa.pub 192.168.10.20:/root/.ssh
ㄴ 효과는 동일
service crond restart
chmod 755 sevas.sh