반응형

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

 

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 폴더에 백업이 잘 되었나 확인해 본다.

 

반응형
반응형

작업 방법 1. administrator(관리자 권한) 변경

  1. Windows 로고 키 + x  를 누른 후 명령 프롬프트(관리자)을 선택합니다.
  2. 명령 프롬프트에서 아래의 명령을 입력 후 enter 키를 누룹니다.(입력이 어려울 경우 복사 후 명령 프롬프트에서 마우스 우측 키를 누르고 붙여넣기 합니다.)
  3. net user administrator /active:yes
  4. Windows 로고 키 + x 누른 후 종료 또는 로그 아웃에서 로그 아웃을 선택합니다.
  5. 왼쪽 아래에 administrator 계정이 생성된 것이 보입니다. administrator 계정을 선택 후 로그인 합니다.(처음 시작시 시간이 다소 소요됌)
  6. 삼성노트북 settings 프로그램 설치합니다
  7. administrator 계정에서 로그 아웃합니다.
  8. 처음 표준 계정을 선택 후 로그인합니다.
  9. Windows 로고 키 + x  를 누른 후 명령 프롬프트(관리자)을 선택합니다.
  10. 명령 프롬프트에서 아래의 명령을 입력 후 enter 키를 누룹니다.(입력이 어려울 경우 복사 후 명령 프롬프트에서 마우스 우측 키를 누르고 붙여넣기 합니다.)
  11. net user administrator /active:no
  12. administrator 계정이 해제됩니다.

주의: administrator  계정을 사용하시면 보안에 취약해 지므로 반드시 해제 후 로컬 계정을 사용해 주세요.

반응형
반응형

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions"  prefix="fn"%>

 

${fn:escapeXml(myName)}

 

반응형
반응형

password 자동완성 막기

 

크롬에서
아이디 비번 저장 한 경우,
< input type="password" id="user_pwd" name="user_pwd" autocomplete="off">

 


이게 한개면 자동으로 세팅된다.
그래서 가짜 패스워드를 만들어 주면 된다.

 


< input type="password" id="user_pwd_fake" name="user_pwd_fake" autocomplete="off" style="display: none;">
< input type="password" id="user_pwd" name="user_pwd" autocomplete="off">
반응형
반응형

페이스북 developer 에서 app을 새로 생성하면 주는 key를 입력해주면 된다.

 

You wanted to have Facebook Like Button or Facebook Like Box and other Facebook social plugins on your website. You copy pasted to code Facebook generated for you on your web pages. If you do not have an App ID when you copied this, chances are the Facebook script will complain in your Web Browser’s console (e.g Firebug Console).

Invalid App Id: Must be a number or numeric string representing the application id.
FB.getLoginStatus() called before calling FB.init().
 
all.js#xfbml=1 (line 56)

To fix this issue, just do a “Create New App” in the Apps section in Facebook. And then go back to the Facebook Social Plugins page, pick a plugin, and regenerate the code for it.

Your Facebook plugin code before having an App ID:

<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

After you have assigned an App to the plugin

<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=<your-16-digit-app-id>";  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

Notice the difference in the highlighted code? Let me know if this solved your problem in the comment area.

반응형
반응형

참고 : 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

반응형
반응형

저 두 녀석간에 어떤 차이점이 있는것일까? sendRedirect가 안되면 getRequestDispatcher를 사용하곤 했는데 원인을 찾아봐야 할 필요성이 생겼다.

1. response.sendRedirect("/contextName/helloWorld.jsp");

전송되는 페이지의 HTTP HEADER에 리다이렉트 정보를 담아 보낸다. 브라우저가 HEADER 정보를 분석한 후 원하는 URL로 리다이렉트 시킨다. sendRedirect 이후에 세션, 쿠키, 헤더 정보를 조작하는 로직이 있다면 Cannot create a session after the response has been committed 에러를 내뱉는다. 비지니스 로직에서 sendRedirect를 하게 된다면 과감하게 return 시키자. 경로에는 컨텍스트명을 포함한 절대 경로(/로 시작하거나 http로 시작하는 풀 주소)로 적어주어야 한다.

2. request.getRequestDispatcher("/helloWorld.jsp").forward(request, response);

해당 코드가 실행되는 순간 이동할 페이지를 강제로 읽어들여 리다이렉트 한다. 브라우저에게 의사 결정권이 없다.
이후의 코드가 무시된다. sendRedirect와 같은 기능을 하지만 sendRedirect는 request/response를 잃는 반면 getRequestDispatcher의 경우 재활용 한다. 경로에는 컨텍스트명을 제외한 경로를 적는다.

참고 :
http://www.jguru.com/faq/view.jsp?EID=223732
http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=50&t=009192

반응형
반응형

.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. 서비스 다시 시작

 

반응형

+ Recent posts