반응형

리눅스 시스템에서 주기적으로 파일과 데이터베이스 백업을 하는 방법에 대하여 설명하겠다.

 

1. 정책 세우기

언제마다 백업을 할 것인가? 백업 방식은 어떤것인가? 백업 유지 기간은? 백업 저장소는 어떤 것인가?

 

1) 백업 주기 정책

대부분의 서버에서 접속자가 가장 낮을때는 4:00 AM ~ 4:30 AM 입니다.

그래서 많은 사람들이 새벽 4:00 에 백업이 이루어지게 설정합니다.

 

하루에 2번 백업하고 싶으면 오전/오후 4:00 에 백업을 하도록 합시다.

 

2) 백업 방식 정책

백업이라는 것이 데이터를 복사해 두는 것이기 때문에 하드디스크의 여유공간이 많아야 합니다.

# df -h

명령어를 통해서 저장할 디스크의 여유공간이 충분한지 파악해 봅시다.

 

또 백업에는 CPU의 연산이 이루어집니다. (파일을 읽어서 새로운 곳에 기록)

압축 백업 : (tar -czpf 백업) 일반적으로 많이 쓰이는 백업입니다. 이 작업에는 CPU 가 많이 사용됩니다.

10GB 미만 압축이면 상관없는데 그 이상의 대용량의 압축 백업은 주의가 필요합니다. 백업 시켜놓고 CPU 사용량을 확인하세요.

복사 백업 : (cp -R 백업) 압축하지 않고 복사만 합니다. 사용 용량을 많이 차지하지만 (압축하지 않는다는 뜻) 백업할 때 CPU 사용량이 크게 증가하지는 않습니다.

증분 백업 : (rsync 백업) 변동사항만 비교하여 백업합니다. 비교를 위해서 파일은 항상 압축되지 않은 상태로 보관됩니다.

 

3) 백업 유지기간 정책

– 몇일치를 보관할 것인가? 또는 몇개의 백업 파일을 보관할 것인가?

 

4) 백업 저장소 정책

– 백업 파티션을 나누어서 저장?

– 디스크를 새로 장착하여 저장?

– FTP 등을 사용해서 원격 저장?

http://blog.lael.be/post/1387 글을 참조하여 별도의 백업서버의 폴더를 연결(mount)하여 백업을 해보도록 하자.

 


 

2. 설정된 정책을 바탕으로 백업 세팅하기

백업 정책 예시 :

– 하루 2회 오전/오후 4시에 백업.

– 파일과 디비(MYSQL or MariaDB) 백업.

– 백업 저장소는 동일 디스크의 /backup 폴더.

– 백업 파일은 10일치를 보관한다.

 

작업은 root 권한에서 실행한다.

# su -l root    나   # sudo su    등의 명령어로 root 권한으로 상승하여라.

 

1) 백업이 저장될 폴더 만들기.
# mkdir /backup

 

2) 퍼미션 조정
# chmod 700 /backup

 

3) 백업 스크립트 작성
# cd /root
# vi backup.sh

 

tar 명령어는 파일 압축 백업을 실시합니다.

mysqldump 명령어는 데이터베이스 백업을 실시합니다.

find 관련 명령어는 10일이 지난 파일을 삭제합니다.

 

— tar 와 mysqldump 는 여러 줄 쓰셔도 됩니다.

— 설정을 바꿀 수 있는 부분은 파란색빨간색으로 표시하였습니다.

 

#!/bin/bash
tar -czpf /backup/myuser.`date +%Y%m%d%H%M%S`.tgz /home/myuser/www 1>/dev/null 2>/dev/null
mysqldump --extended-insert=FALSE -uroot -pmypassword mydbname > /backup/mydbname.`date +%Y%m%d%H%M%S`.sql
find /backup/ -type f -mtime +10 | sort | xargs rm -f

 

아래 내용을 더블클릭해서 복사한 후 사용하여라.

1
2
3
4
#!/bin/bash
tar -czpf /backup/jingjing.`date +%Y%m%d%H%M%S`.tgz /home/minecraft3s/jingjing 1>/dev/null 2>/dev/null
mysqldump --extended-insert=FALSE -uroot -pjingjing.kr sir_doc > /backup/sir_doc.`date +%Y%m%d%H%M%S`.sql
find /backup/ -type f -mtime +10 | sort | xargs rm -f

스크린샷 2015-06-14 오후 10.38.04

4) 백업 스크립트 실행권한 설정
# chmod 700 backup.sh

 

5) 연습삼아 실행
# ./backup.sh

 

6) 확인

# cd /backup

# ll -h

스크린샷 2015-06-14 오후 10.11.03

이 때 total 에 나온 용량과 df -h 명령어에 나온 여유공간을 비교하여 백업 정책이 적합한지 판단한다. (디스크 여유공간 비교)

backup.sh 의 find 관련 명령어에서 10 이라는 숫자를 변경하면 된다. (디스크 용량이 부족할 경우 5일치만 저장하도록 바꾸셔야겠죠?)

 

7) 주기적인 실행

cron (예약관리자 실행 프로그램)에 매일 오전/오후 4시 0분에 실행되도록 설정한다.

# crontab -e
0 4 * * * /root/backup.sh 1>/dev/null 2>/dev/null
0 16 * * * /root/backup.sh 1>/dev/null 2>/dev/null

 

 

스크린샷 2015-06-15 오후 2.17.41

 

 

8) 확인

잠자고 일어나서 /backup 폴더에 백업이 잘 되었나 확인해 본다.

 

반응형
반응형

참고 : http://ddoong2.com/m/post/572

네트워크 드라이브를 연결해서 사용하는데 로그인 할때마다 풀리는 경우가 발생했다.


분명 '내 자격 증명 기억'을 체크 했는데


설정 방법은 Windows7 일때...


시작 -> 제어판 -> 자격증명 관리자 -> Windows 자격증명 추가









====================================================================================================================================

네트워크 드라이브 연결 지속


참고 : http://blog.naver.com/hanyu99/80110310727

http://support.microsoft.com/kb/297684/ko


windows의 버전 마다 차이기 있을 수는 있겠지만 네트워크 공유에 드라이브를 매핑하면

 

해당 시스템의 유휴 세션 시간이 지난면 매핑된 드라이브 연결이 끊어 질 수가 있습니다.

 

그로 인해 말씀하신것 처럼 매핑된 드라이브 아이콘에 붉은색 x 를 표시하게 됩니다.

 

하지만 다시 액세스 또는 탐색 시 붉은색 x가 없어지게 됩니다.

 

이런 유휴 시간이 있는 것은 지정된 유휴 시간 후 유휴 연결을 제거하여 사용되지 않는

 

세션에서 서버 리소스가 낭비되는 것을 줄이기 위해서 입니다.

 

만약 해당 연결 시간을 지속적으로 또는 그 시간을 늘리기 위해서는 하기의 명령줄을 활용하시면 되는데요.

 

net config server /autodisconnect:number

 

입니다. 여기서 number는 연결을 끊기 전에 서버가 대기하도록 할 시간이며 최대 값은 65,535입니다.

 

그리고 autodisconnect 값을 0(영)으로 설정하면 autodisconnect 기능은 해제되지 않으며

 

autodisconnect 기능을 해제하려면 아래와 같이 하시면 됩니다.

 

net config server /autodisconnect:-1

 

하기의 링크에서 자세한 사항을 보실 수 있습니다.

 

참고 사항

net config server는 다음과 같은 정보를 표시합니다.

-------------------------------------------------------------------- 
C:\>net config server
서버 이름                             \\culaworld
서버 설명                             테스트

소프트웨어 버전                       Microsoft Windows Server 2003
서버 활성화
        NetbiosSmb (000000000000)
        NetBT_Tcpip_{xxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxx} (xxxxxxxxxxxx)


서버 숨겨짐                           아니오
로그온 사용자 최대 수                 제한 없음
세션당 열 수 있는 파일의 최대 수      16384

유휴 세션 시간 (분)                   15
명령을 잘 실행했습니다.
-------------------------------------------------------------------- 


Windows XP의 인바운드 연결 제한

http://support.microsoft.com/kb/314882/ko

 

Windows NT Workstation 3.5x 및 4.0으로의 인바운드 연결(Inbound Connection) 제한

http://support.microsoft.com/kb/122920/ko

 

서버 서비스 구성과 조정

http://support.microsoft.com/kb/122920/

 

명령줄에서 공유 폴더 관리

http://www.microsoft.com/technet/prodtechnol/windowsserver2003/ko/library/ServerHelp/df58120a-6f54-43ca-8a23-5ce529f3b8c3.mspx

반응형
반응형

.epub 과 .nep 파일이 다운로드가 안되어 확인해본 결과 IIS에서는 확장자를 직접 적어줘야 됬었따ㅠㅠ

그래서 Metabase.xml를 아래와 같이 수정했다. 물론 IIS 관련 서비스를 먼저 중지를 시켜준다.

 

1. 시작 > 실행 > services.msc

IIS Admin 과 World Wide Web 를 중단

 

2. C:\WINDOWS\system32\inetsrv\MetaBase.xml 수정

라인을 쭉 내려보면 .xxx,application/octet-stream 등 파일 확장자 목록이 있는 구간이 있다.

이 곳에 추가할 확장자를 추가로 작성해주자.

 

3. 서비스 다시 시작

 

반응형
반응형

Window 2008 IIS7에서 업로드/다운로드 용량제한 풀기

 

특정 확장자의 파일이 다운로드 되지 않는 현상이 있어 삽질을 엄청했다..

 

증상)
.xls .gif 이런 놈들은 잘 다운되는데 .zip .exe는 다운이 되질 않았다.
MIME 타입 문제인가 싶었는데.. 별짓을 다해봐도 안되는거다..
혹시나 싶어 용량을 팍 줄여서 zip파일을 만들어보니 그놈은 잘되는거지..
MIME 타입 문제가 아니라 용량의 문제였다.

 

네이버도 구글도 자료가 참으로 없더라..
자료가 많아야 대충 키워드 입력해도 걸려들터인데..

 

"모든 작업은 IIS 관련 서비스를 중단한후에.."

 

IIS 6.0에서 metabase.xml 파일에 AspBufferingLimit과 AspMaxRequestEntityAllowed 용량을 늘려주란다.
난 7.0이란 말이닷!!
7.0은 MBSchema.xml 파일 안에 있었다.
IIS ADMIN SERVICE를 중지시키고 수정하고 다시 시작했는데.. 그래도 말을 안듣는다.

 

IIS 7.0에서 대용량 파일을 처리하는 경우
web.config 또는 %windir%\system32\inetsrv\config\applicationhost.config 파일을 수정하랜다.

 

귀차니즘 발동.. web.config만 수정해본다.
IIS 재시작해봐도 반응이 없다..
applicationhost.config엔 해당 항목이 있지도 않다. 어따 넣으래는거뉘~~

 

여기서부터 본론.. ^^;

 

applicationhost.config 로 검색해본다..

 

window 2008 IIS7 에서는 콘텐츠 용량 제한이 기본 30Mb 로 제한되어 있단다.

%windir%\system32\inetsrv\config\applicationhost.config 파일을 열어

 

콘텐츠 용량 제한 조절
1.<requestFiltering>
2....
3.<requestLimits maxAllowedContentLength="1073741824" maxUrl="4096" maxQueryString="2048" />
4....
5.</requestFiltering>

 

라인3 한줄 추가!!

요놈이 web.config에 넣었던 넘이다.. 뻘짓...

 

다운로드/업로드 용량 조절
1.<system.webServer>
2.<asp>
3.<limits bufferingLimit="1073741824" maxRequestEntityAllowed="1073741824" />
4.</asp>
5....
6.</system.webServer>

 

라인3 한줄 추가!!

저장한 후 IIS를 재시작해보니 이제사 된다..

 

용량은 바이트 단위이니 원하는 만큼 지정해서 쓸것!

 

MBSchema.xml에서 설정했던 내용인데.. applicationhost.config에 설정을 해야 먹히는구낫..

 

IIS 7.0 참으로 정이 안간다 ㅜㅜ

 

반응형
반응형

$ ls -li        //파일의 inode 번호를 확인 하는 명령어다

 1976 -rwxrwxr--    1 guda  guda          738  4월 29일 2005  洹??띻꼍?뺤껌援ъ옄猷?TXT
   53 -rw-rw-r--    1 guda  guda            0  1월 25일 2010  20100122

$ find ./ -inum 1976 -ls   //삭제하고자 하는 파일이 맞는지 확인해본다
 1976    1 -rwxrwxr--  1 guda   guda         738 Apr 29  2005 洹??띻꼍?뺤껌援ъ옄猷?TXT

$ find ./ -inum 1976 -ls -exec rm {} \;     //해당 파일을 삭제하는 명령어
 1976    1 -rwxrwxr--  1 guda   guda         738 Apr 29  2005 洹??띻꼍?뺤껌援ъ옄猷?TXT

$ ls   //정상적으로 삭제 되었는지 확인해보자..

이런식으로 파일명이 깨졌다든지 삭제가 안되는 파일을 inode 번호를 이용하여 삭제하면 된다. 
반응형
반응형

/var/log/error.log 를 보니 evasive:20 persimission denind 오류가 떠있었다.

그래서 a2dismod evasive 를 하니 일단 오류가 더이상 뜨진 않는다.

이건 극단적인 방법이고, mods-enabled 에서 evasive.conf 를 열어 제한 수를 조정해주는것도 한 방법이 되겠다.

반응형
반응형

Apache UserDir 모듈

 

Apache 서버의 내부 사용자들이 외부에 공개하고자 하는 html 문서를 저장하기 위한 용도로 사용되는 내부 사용자별 디렉터리를 말한다.  UserDir 모듈 사용방법은 아래와 같이 사용한다. 


1. userdir.conf 편집

 

#/etc/apache2/mods-available/userdir.conf

 

<IfModule mod_userdir.c>

          UserDir public_html    // 사용자별 디렉터리 이름

          UserDir disabled root  // userdir 모듈 허용 / 거부 설정 

         

          <Directory /home/*/public_html> // 사용자별 디렉터리 위치

                  AllowOverride FileInfo AuthConfig Limit Indexes

                  Options Multiviews Indexes SymLinksIfOwnerMatch IncludesNoExec

                  <Limit GET POST OPTIONS>

                         Order allow,deny

                         Allow from all

                  </Limit>

                  <LimitExcept GET POST OPTIONS>

                         Order deny,allow

                         Deny from all

                  </LimitExcept>

              </Directory>

</IfModule>

 

위에서 살펴본 userdir.conf파일을 이용하여특정 사용자만 UserDir 디렉터리를 허용시키고자 할 때는 enabled을 사용하여아래와 같이 설정한다.

 

) UserDir disabled

    UserDir enabled user1 user2

 

대부분의 사용자는 허용하고 일부만 거부하고자 한다면 disabled을 이용하여아래와 같이 설정한다.

 

) UserDir enabled

    UserDir disabled user1 user2 

 

2. 링크 또는 복사


Userdir.conf 파일 설정이 완료되면, /etc/apache2/mods-acailable/안에 있는 userdir.cof

userdir.load 파일을 /etc/apache2/modes-enabled/으로 복사하거나 링크를 걸어 준다.

 

링크

#cd /etc/apache2/modes-enabled/

#ln -s /etc/apache2/mods-available/userdir.conf

#ln -s /etc/apache2/mods-available/userdir.load

 

복사

#cp /etc/apache2/modes-available/userdir.* /etc/apache2/modes-enabled/

 

3. 폴더 생성

 

2번 까지 모두 완료되었으면이제 Home 디렉터리에 존재하는 사용자 폴더 밑에 public_html 폴더를 생성 후 안에 *.html 을 생성 해준다

 

4. 모든 설정이 끝났다이제 apache 데몬을 재 시작한다.


#/etc/init.d/apache2 restart

 

- Userdir 접속 방법

브라우저에서 http://도메인/~사용자/ (http://ex.com/~user1/)

반응형
반응형

외부에서 불법 링크를 차단 할 경우 (내부링크는 허용됨)
apache virtualhost부분에 아래 추가

   SetEnvIFNoCase Referer "daum.com" link_allow
   SetEnvIFNoCase Referer "111.111.13.111" link_allow - localhost를 지정해주지 않으면 IP로 접속시 이미지 깨짐
   <FilesMatch "\.(gif|jpg|)$"> - gif|jpg 지정할 경우 웹페이지중 gif 및 jpg는 외부링크는 허용안됨 추가로 확장자 지정됨
ex> (gif|jpg|png|bmp|zip|tar|rar|alz|a00|ace|jpg|jpeg|txt|GIF|JPG|BMP|ZIP|TAR|RAR|ALZ|A00|ACE|TXT|mp3|MP3|mpeg|MPEG|wav|WAV|asf|ASF|wmv|WMV|swf|SWF|exe|EXE)$">
   order allow,deny
   allow from env=link_allow
   deny from all
 </FilesMatch>


 <VirtualHost *:80>
   # ServerAdmin webmaster@daum.or.kr
    DocumentRoot /home/public_html/
    ServerName daum.com
    ServerAlias www.daum.com
    SetEnvIf Request_URI \.gif image-request
    SetEnvIf Request_URI \.jpg image-request
    SetEnvIf Request_URI \.png image-request
    CustomLog logs/access_log common env=!image-request
    #ErrorLog "logs/damc.or.kr-error_log"
    #CustomLog "logs/damc.or.kr-access_log" common

    <FilesMatch "\.(gif|jpg|png|bmp|zip|tar|rar|alz|a00|ace|jpg|jpeg|txt|GIF|JPG|BMP|ZIP|TAR|RAR|ALZ|A00|ACE|TXT|mp3|MP3|mpeg|MPEG|wav|WAV|asf|ASF|wmv|WMV|swf|SWF|exe|EXE)$">
  order allow,deny
  allow from env=link_allow
  deny from all
 </FilesMatch>
</VirtualHost>

 

반응형

+ Recent posts