레이블이 Cron인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Cron인 게시물을 표시합니다. 모든 게시물 표시

2015년 11월 11일 수요일

linux - cron으로 mysql 자동백업

linux - cron으로 mysql 자동백업
 
Shell 작성

# mkdir /backup
# chmod 755 backup
# vi /root/backup.sh

backup.sh
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
#!/bin/sh
DATE=`date +"%Y%m%d"`
PREV_DATE=`date --date '5 days ago' +"%Y%m%d"`

/usr/bin/mysqldump -u사용자id -p비번 DB명 > /backup/mysql_db_bak_${DATE}.sql
chown root.root  /backup/mysql_db_bak_${DATE}.sql
chmod 755  /backup/mysql_db_bak_${DATE}.sql
rm -Rf  /backup/mysql_db_bak_${PREV_DATE}.sql
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

전체DB를 백업하려면
mysqldump -u사용자id -p비번 DB명 > /backup/mysql_db_bak_${DATE}.sql
이 명령어대신
mysqldump  -u사용자id -p비번 -e --all-databases > /backup/mysql_db_bak_${DATE}.sql

 
원격DB백업
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
mysqldump -u 유저 -p"패스워드" -h 아이피주소 -P 포트번호 DBName > 백업명.sql
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
 
# chmod 100 /root/backup.sh


shell이 실행하는지 확인
#./root/backup.sh
실행후 /backup(백업데이터가 저장된폴더)로 가서 파일 확인

Cron 만들기

# crontab -e (매일 6시 백업)

00 06 * * * /root/backup.sh

크론 데몬 재실행
# /etc/rc.d/init.d crond restart

크론 확인
# crontab -l
 원격DB백업 부분은 첨부되었음.

나는 centos 7에서 자동백업 쉘을 만들었는데....
centos 7에는 marisdb 10.1을 설치하였고,
원격은 windows 2012에 mysql 5.6이 설치된상태임.

Cron

Cron
주기적으로 반복되는 작업을 설정해둔 시간에 작동하게 해주는 것.
crontab에 작업 내역을 설정해주면 crond(데몬)가 crontab파일을 읽어서 작업을 해준다

Cron데몬: Crond
작업 목록 설정 파일: crontab
crontab 수정 명령어: crontab

 
1. root계정에서 크론 설정
 
1.1 cron 설정 방법 
crontab -e로 크론 설정 작업을 vi에서 스크립트로 작성 한다.
 
 10       3       *        *         0,4    /etc/cron.d/logchecker
(분) (시간) (day) (month) (weak)         (command)
 
리눅스 Cron
5분에 1번씩 a.sh를 실행 (*/5 <- 5분에 1번씩)
솔라리스는 5,10,15,20 ~ 다 적어야 한다
 
ex) 52 * * * * ls -al /export/home/userA > abc.txt
: 매달 매일 매시간 52분에, /export/home/userA에 속한 파일을 abc.txt 파일에 저장 한다.
 
※ Crontab -e 이 vi모드로 안넘어가면
EDITOR=vi
export EDITOR 치면ok!
 
※ /var/spool/cron/crontabs/(username)에 작업 내용이 저장. 
vi /var/spool/cron/crontabs/root <- 52 * * * * ls -al /export/home/userA > abc.txt 작업 설정 내용 확인
 
 
1.2 cron 설정 확인
crontab -l: cron 예약 작업 확인.
 
# crontab -l
30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean
#10 3 * * * /usr/lib/krb5/kprop_script ___slave_kdcs___
55 * * * * ls -al /export/home/userA > abc.txt      <- 아까 설정한 cron
Cron 재시작
/etc/rc.d/init.d/crond stop

/etc/rc.d/init.d/crond start




2. 사용자계정에서 cron 설정
 
2.1 cron 설정
crontab -e로 사용자 크론 설정 명령어를 vi에서 작성 한다.(사용자 계정 로그인 상태에서)
 
2.2 root계정에서 사용자계정의 cron 설정 확인
crontab -l (사용자계정)
# crontab -l userA
19 * * * * ls -al /export/home/userA > abcd.txt
2.3 root계정에서 사용자계정 cron 수정
crontab -e (사용자계정)으로 vi에 들어가 수정한다
 
3. cron 삭제
crontab -r (사용자계정), crontab -e에서 직접 삭제해도 된다(옵션 기억 안나면 다 지워버려!!)
 
4. 사용자계정 접근 제어
/etc/cron.d/cron/deny  or   ~/cron.allow 두 개 파일 중 1개만 있으면 된다.
 
/etc/cron.d/cron.deny <- 설정된 사용자계정 접근 금지(접근금지를 원하는 사용자계정을 추가)
daemon
bin
smtp
nuucp
listen
nobody
noaccess   <-vi로 접근했을 시 기본 설정.
/etc/cron.d/cron.allow: 생성 해줘야 함. 이 파일에 속한 사용자 계정만 접근 허가

[출처] 2011.7.13_ Cron|작성자 홧팅

vsftpd FTP 서버 접속은 성공하였으나, "디렉토리 목록 조회 실패" 현상 발생시

FTP Passive 모드를 활성화 필요. 1. vsftpd 설정 변경 /etc/vsftpd/vsftpd.conf 상에 아래 내용 추가 기입 #passive modpasv_enable=YES pasv_min_port=5001 pasv...