ncftp 를 이용한 백업 스크립트ncftp 를 이용한 백업 스크립트
Posted at 2010. 10. 5. 12:57 | Posted in Serverncftp 를 이용한 백업 스크립트
ncftp를 이용한 백업 스크립트입니다.
스크립트에 원격삭제도 추가하면 더좋겠죠?
# vi /root/backup.sh
#!/bin/bash
#### 공통설정
export Today="`date '+%y-%m-%d'`"
backup_dir="/home/file/backup"
backup_day="1" # 보관일(1일)
#### 디비설정
DB_user="root";
DB_pass="비밀번호";
#### 원격설정
FTP_addr="접속아이피";
FTP_user="아이디";
FTP_pass="비밀번호";
########### 오래된 백업데이터 삭제
dirlists=`/bin/ls -t $backup_dir 2>/dev/null`
i=1
for dir in $dirlists ; do
if [ "$i" -ge $backup_day ] ; then
/bin/rm -rf "$backup_dir/$dir"
fi
i=$(($i+1))
done
####### 새로운 디렉토리 생성
if [ ! -d "${backup_dir}/${Today}" ]
then
/bin/mkdir -p ${backup_dir}/$Today
/bin/mkdir -p ${backup_dir}/$Today/homedir
/bin/mkdir -p ${backup_dir}/$Today/databass
/bin/mkdir -p ${backup_dir}/$Today/system
fi
####### databass를 사용자별로 백업을 한다.
for database in `mysqlshow -u ${DB_user} -p${DB_pass} | awk -F" " '{ print $2 }' | grep -v "^$" |grep -v "Databases"` ; do
mysqldump -u ${DB_user} -p${DB_pass} "${database}" ${table} > ${backup_dir}/${Today}/databass/${database}.sql
done
####### 시스템 디렉토리를 백업한다
tar cvfpz ${backup_dir}/$Today/system/usr.local.tar.gz /usr/local
tar cvfpz ${backup_dir}/$Today/system/etc.tar.gz /etc
tar cvfpz ${backup_dir}/$Today/system/var.named.tar.gz /var/named
####### home 디렉토리에 사용자별로 백업을 한다.
dirlists=`/bin/ls -t /home 2>/dev/null`
for dir in $dirlists ; do
tar cvfpz ${backup_dir}/$Today/homedir/$dir.tar.gz /home/$dir
done
####### 링크를 만들어 준다.
rm -rf ${backup_dir}/today
ln -s ${backup_dir}/$Today /${backup_dir}/today
####### 원격 데이타백업을 시작한다.
ncftp -u${FTP_user} -p${FTP_pass} ${FTP_addr} << ./backup
put -R ${backup_dir}/$Today
bye
* 파일 경로 주의하시고 이메일주소 변경해서 사용하세요.
# crontab -e
05 00 * * * '/usr/bin/rdate -s time.bora.net && /sbin/clock -w'
00 04 * * * su - root -c '/root/backup.sh | mail -s "시스템 백업 결과보고" test@abc.com';
'Server' 카테고리의 다른 글
사용자 계정 + mysql 계정 추가 스크립트 (0) | 2010.10.05 |
---|---|
리눅스 시스템 시간 확인 및 시간 맞추기 (0) | 2010.10.05 |
TAR명령. TAR압축묶기 압축풀기 (0) | 2010.10.05 |
vsftp port 변경 (0) | 2010.10.05 |
mysql 리플리케이션으로 DB를 백업하자 (0) | 2010.10.05 |
TAR명령. TAR압축묶기 압축풀기TAR명령. TAR압축묶기 압축풀기
Posted at 2010. 10. 5. 12:56 | Posted in Server<TAR> | ||||||||||||||||||||||||||||||||||||
|
'Server' 카테고리의 다른 글
리눅스 시스템 시간 확인 및 시간 맞추기 (0) | 2010.10.05 |
---|---|
ncftp 를 이용한 백업 스크립트 (0) | 2010.10.05 |
vsftp port 변경 (0) | 2010.10.05 |
mysql 리플리케이션으로 DB를 백업하자 (0) | 2010.10.05 |
vsftpd passive mode 사용 (0) | 2010.10.05 |
vsftp port 변경vsftp port 변경
Posted at 2010. 10. 5. 12:55 | Posted in Servertp를 이용한 해킹을 막기 위해서 해외 접속 ftp에 대한 ip를 모두 차단할 수도 있지만
(GeoIP라는 거를 쓰면 됨) 간단하게 ftp port만 바꿔버릴 수도 있습니다.
vsftp의 경우 /etc/vsftpd/vsftpd.conf 에서 아래 라인을 추가 합니다.
그리고 가끔씩 ftp port를 바꿔서 해킹을 헷갈리게 하는거죠.
이거는 공용서버에서는 할 수 없겠죠? ㅎㅎ
# vsftp access port
listen=YES
listen_port=15231
'Server' 카테고리의 다른 글
ncftp 를 이용한 백업 스크립트 (0) | 2010.10.05 |
---|---|
TAR명령. TAR압축묶기 압축풀기 (0) | 2010.10.05 |
mysql 리플리케이션으로 DB를 백업하자 (0) | 2010.10.05 |
vsftpd passive mode 사용 (0) | 2010.10.05 |
find를 사용한 치환 (0) | 2010.10.05 |
mysql 리플리케이션으로 DB를 백업하자mysql 리플리케이션으로 DB를 백업하자
Posted at 2010. 10. 5. 12:54 | Posted in Server가. Master 서버 설정
1. Slave 서버에서 접근할 수 있도록 권한을 준다.
mysql> GRANT REPLICATION SLAVE ON *.* TO 'ID'@'IP' IDENTIFIED BY 'PASSWORD';
ID : Master MySQL의 user id로 Slave의 접근함
IP : Slave 서버의 IP
PASSWORD : MySQL에서 쓰는 id의 password
2. Master 역할을 수 있는 권한 부여
[mysqld]
server-id = 1
binlog-do-db = 'DB_NAME'
binlog-ignore-db = mysql
binlog-ignore-db = information_schema
log-bin = mysql-bin
server-id 동기화 구성에 참여한 각각의 MySQL들을 구분짓기 위한 UNIQUE ID로서 중복되면
binlog-do-db : 실제 동기화 하려는 대상 DB의 이름. DB마다 라인씩 추가하면 된다.
binlog-ignore-db : 동기화 하지 않을 DB의 DB마다 한 라인씩 추가하면 된다.
log-bin : 아마도 mysql의 file 이름.
나. Slave 서버
1. Slave 역할을 할 수 권한 부여
[mysqld]
server-id = 2
master-host = 'Master IP'
master-user = 'ID'
master-password = 'PASSWORD'
master-port = 3306
log-bin = mysql-bin
server-id : 역할과 동일하게 UNIQUE ID
master-host : Master 서버의 IP
master-user : Master 서버의 MySQL에 생성했던 Replication 계정 ID
master-password : Replication 계정 ID의 비밀번호
master-port : 서버의 MySQL 원격 접속 포트번호 (기본: 3306)
log-bin : 역할과 동일하게 아마도 log file 이름
다. 동기화 작동
1. Master 재시작 후 MySQL에 접속
2. Master 서버 확인
********************** 1. row **********************
File : mysql-bin.000003
Position : 98
Binlog_Do_DB : test
Binlog_Ignore_DB : mysql, information_schema
1 row in set (0.00 sec)
mysql>
3. Slave 서버 후 MySQL에 접속
4. Slave 서버 동작
mysql> SHOW SLAVE STATUS\G
********************** 1. row **********************
Slave_IO_State : Waiting for master to send event (정상)
Master_Host : IP
Master_User : ID
Master_Port : 3306
Connection_Retry : 60
Master_Log_File : mysql-bin.000003
Read_Master_Log_Pos : 98
.
.
Slave_IO_Running : Yes (정상)
Slave_SQL_Running : Yes (정상)
.
.
1 row in set (0.00 sec)
mysql>
Read_Master_Log_Pos : STATUS의 Position과 동일하다.
Slave_IO_State, Slave_IO_Running, Slave_SQL_Running 의 위와 같다면 정상
'Server' 카테고리의 다른 글
TAR명령. TAR압축묶기 압축풀기 (0) | 2010.10.05 |
---|---|
vsftp port 변경 (0) | 2010.10.05 |
vsftpd passive mode 사용 (0) | 2010.10.05 |
find를 사용한 치환 (0) | 2010.10.05 |
mod_rewrite 별도 설치 (0) | 2010.10.05 |
vsftpd passive mode 사용vsftpd passive mode 사용
Posted at 2010. 10. 5. 12:54 | Posted in Serverpasv_enable=YES 추가
/etc/rc.d/init.d/vsftpd restart 실행
vi /etc/rc.d/rc.local 에
modprobe ip_conntrack_ftp 추가
reboot 실행
'Server' 카테고리의 다른 글
vsftp port 변경 (0) | 2010.10.05 |
---|---|
mysql 리플리케이션으로 DB를 백업하자 (0) | 2010.10.05 |
find를 사용한 치환 (0) | 2010.10.05 |
mod_rewrite 별도 설치 (0) | 2010.10.05 |
hMailServer와 ColdFusion을 이용한 웹메일 서비스 만들기 (0) | 2010.10.05 |
find를 사용한 치환find를 사용한 치환
Posted at 2010. 10. 5. 12:53 | Posted in Server'Server' 카테고리의 다른 글
vsftp port 변경 (0) | 2010.10.05 |
---|---|
mysql 리플리케이션으로 DB를 백업하자 (0) | 2010.10.05 |
vsftpd passive mode 사용 (0) | 2010.10.05 |
mod_rewrite 별도 설치 (0) | 2010.10.05 |
hMailServer와 ColdFusion을 이용한 웹메일 서비스 만들기 (0) | 2010.10.05 |
mod_rewrite 별도 설치mod_rewrite 별도 설치
Posted at 2010. 10. 5. 12:52 | Posted in Servermod_rewrite 설치시 도움 될만한 글입니다...
이것은 처음 설치용이 아닌 사용중 추가하는 방법입니다.
cd 아파치설치디렉토리/src/modules/standard
/usr/local/apache/bin/apxs -c -I/usr/include/gdbm mod_rewrite.c
gcc -shared -o mod_rewrite.so mod_rewrite.o -lgdbm
/usr/local/apache/bin/apxs -i mod_rewrite.so
vi /usr/local/apache/conf/httpd.conf
#------- 아래 부분 추가 -------
LoadModule rewrite_module libexec/mod_rewrite.so
Addmodule mod_rewrite.c
#------- 여기까지 ---------
/usr/local/apache/bin/apachectl configtest
/usr/local/apache/bin/apachectl restart
이렇게 하시면 에러 안나고 설치 잘 됩니다. :_)
'Server' 카테고리의 다른 글
vsftp port 변경 (0) | 2010.10.05 |
---|---|
mysql 리플리케이션으로 DB를 백업하자 (0) | 2010.10.05 |
vsftpd passive mode 사용 (0) | 2010.10.05 |
find를 사용한 치환 (0) | 2010.10.05 |
hMailServer와 ColdFusion을 이용한 웹메일 서비스 만들기 (0) | 2010.10.05 |
hMailServer와 ColdFusion을 이용한 웹메일 서비스 만들기hMailServer와 ColdFusion을 이용한 웹메일 서비스 만들기
Posted at 2010. 10. 5. 08:46 | Posted in ServerhMailServer는 Microsoft의 Exchange와 같은 Windows용 메일서버로서 강력한 기능과 성능을 자랑하면서 무료로 쓸 수 있는 메일 서버입니다. 메일서비스가 왠만한 포털에 가입만 하면 수십GB씩 공간을 주면서 꽁짜로 쓰는 시대에 무슨 케케묶은 메일서비스 이야기냐 하시겠지만..
기업등에서 자사의 도메인으로 메일서비스를 하려는 경우 H/W 서버장비와 Windows 등의 OS등을 구매하여 비싼 메일 솔루션을 사야하는 점을 고려해보면 메일서비스란것이 만만한 작업이 아님을 아마 아시는 분들은 아실겁니다. hMailServer의 경우 국내에서는 많이 쓰이는지 확인불가입니다만, 네이버 등에서 검색해보면 단순소개 블로그글들은 종종보이는 듯 하니 저 말고는 아는 분들은 아실거라 생각합니다.
hMailServer는 ClamWin(Linux진영의 ClamAV의 Windows버전)과 다양한 필터링옵션을 제공해 보안적인 면도 고려하고 있고, 특히 설치 및 계정생성, 계정할당 등의 복잡한 메일설정을 쉽게 할 수 있으며 다중도메인도 지원하여 하나의 서버에서 여러 도메인으로 서비스 할 수 있습니다. 특히 사용자계정을 Active Directory와 통합하거나, 일시적으로 사용금지하거나 할 수 있습니다. 무엇보다 한국어 번역파일도 제공하므로 관리가 매우 쉽습니다. 더욱이 MSSQL, MySQL, PostgreSQL과 같은 데이터베이스를 기본적으로 지원하므로 대용량 이메일 서비스에서도 대응할 수 있습니다. hMailServer의 설치 및 기본적인 운영상의 정보는 다음의 링크에서 얻을 수 있습니다.(http://www.jopenbusiness.com/mediawiki/index.php/HMail_Server_4.4.1) 아울러 DNS설정, MX레코드설정 등은 본 글과는 무관하므로 자세한 설명은 차후에 하기로 하겠씁니다.
다만, 이런 설치형 메일서버의 문제점(?)이 웹에서 서비스할 경우 사용자가 가입후 자동으로 메일계정을 설정하고 바로 이메일을 활성화하여 서비스를 할 때 구축이 일반 웹개발언어로서는 다소 복잡하다는 것이 있습니다. 즉, 메일서버자체에서 다양한 API를 지원해 주지 못할 경우 웹에서 컨트롤하기 어렵다는 것이죠. 그래서 대부분의 메일서버 엔진이 Java로 구현된 이유가 아닐까 생각합니다.
다행히도 hMailServer는 Microsoft의 COM API를 지원하므로 ASP등에서 직접 VBScript를 통해 서버 API를 호출할 수 있습니다만, ASP란 언어가 Windows계열에서만 구동된다는 점은 다소 아쉬운 부분입니다. 더욱이 COM자체에 대한 연결 Component를 따로 만들어야 하는 것도 그렇고요. (이런 방식으로 hMailServer의 웹메일 솔루션을 만들어 판매하는 곳도 있더군요. 참조: 웹짱닷넷) hMailServer 자체의 COM API설명서는 다음의 링크에서 참조할 수 있습니다.(http://www.hmailserver.com/documentation/latest/?page=com_objects)
실제로 hMailServer를 설치하면 PHP로 된 웹기반 관리자 어플리케이션이 같이 설치됩니다. (단순 소스만 제공) 이 소스를 이용해서 IIS에 PHP모듈을 설치해서 서비스할 수 있겠지만 일단 PHP의 소스가 복잡해서 전 보지는 않았습니다.ㅎㅎㅎ
자.. 그래서 전 ColdFusion으로 해보려고 합니다. 왜냐? 쉽고 간결하고 강력하니까.. 더욱이 <cfmail>이나 <cfpop> 등의 메일관련 태그 몇줄로 구글의 G지메일과 같은 이메일 서비스를 바로 만들 수 있으니까요. 좀더 사용자를 고려해 보면 구글처럼 doc, ppt, xls, pdf 문서 등을 html로 바로 보여주거나, 첨부파일을 zip파일로 압축해서 다운로드되게 하거나, flex를 이용하여 대용량첨부를 가능하게하거나 하는 방법은 이미 ColdFusion에서는 제 블로그 글에서도 누누히 쉬운 작업임을 알려드린바 있기에 메일서버만 웹기반으로 컨트롤 할 수 있다면 문제는 간단해 지겠죠?
ColdFusion에서는 CreateObject()라는 함수를 제공합니다. 이 함수를 이용해서 COM, CORBA, JAVA, .NET 등의 오브젝트를 가져다 쓸 수 있습니다. 문법도 간단해서 쓰기도 편하죠. 이 함수를 이용해서 hMailServer를 컨트롤 하려고 했는데 의외로 간단하게 성공해서 솔직히 좀 김이 샜습니다. ㅎㅎㅎㅎ
hMailServer에서 제공하는 COM API의 VB예제와 같이 비슷한 문법으로 간단하게 사용자 계정을 추가하고 삭제하는 CFML 스크립트를 짜보면 다음과 같습니다.
소스코드 다운로드 :
사용자의 추가(Add Account)
01 |
<!---유니코드 환경설정 ---> |
02 |
< cfprocessingdirective pageencoding= "utf-8" /> |
03 |
|
04 |
< cfscript > |
05 |
obApp = CreateObject ( "com" , "hMailServer.Application" ); |
06 |
obApp.Authenticate( "Administrator" , "설치할때 지정한 hMailServer의 관리자 암호" ); |
07 |
obDomain = obApp.Domains.ItemByName( "hMailServer에서 지정한 도메인" ); |
08 |
|
09 |
obAccount = obDomain.Accounts.Add(); |
10 |
obAccount.Address = "sample@sample.com" ; //추가하고자 하는 이메일주소 |
11 |
obAccount.Password = "samplepassword" ; //이메일주소의 패스워드 |
12 |
obAccount.Active = True; //바로 활성화할것인지요? |
13 |
obAccount.MaxSize = 500; //메일함용량(POP3/IMAP)의 지정 |
14 |
obAccount.Save(); |
15 |
</ cfscript > |
사용자의 삭제(Delete Account)
01 |
<!---유니코드 환경설정 ---> |
02 |
< cfprocessingdirective pageencoding= "utf-8" /> |
03 |
|
04 |
< cfscript > |
05 |
obApp = CreateObject ( "com" , "hMailServer.Application" ); |
06 |
obApp.Authenticate( "Administrator" , "설치할때 지정한 hMailServer의 관리자 암호" ); |
07 |
obDomain = obApp.Domains.ItemByName( "hMailServer에서 지정한 도메인" ); |
08 |
|
09 |
obAccount = obDomain.Accounts.ItemByAddress( "sample@sample.com" ); //삭제하고자하는 메일계정 |
10 |
obDomain.Accounts.DeleteByDBID(obAccount.ID); |
11 |
</ cfscript > |
위 스크립트를 hMailServer와 ColdFusion이 구동중인 서버에서 실행하면 사용자 계정이 생성되거나 삭제됩니다. VB 등으로 서버용 Component를 만들 필요도 없습니다. 업로드하자고 SiteGalaxy와 같은 업로드 콤포넌트 깔아댈 이유도 없습니다. 그냥 저게 답니다. ㅎㅎㅎㅎ 고로 ColdFusion은 위대합니다. 하하하하;;;
가령 ColdFusion으로 회원가입을 받는 웹사이트를 만들고 가입시 메일을 제공하고자 한다면 위 스크립트에서 사용자의 이메일주소 등만 동적으로 할당하면 자동으로 메일이 활성화 되겠죠? 물론 바이러스체크활성, 스팸단어 설정, 도메인추가 등등등 hMailServer가 제공하는 모든 COM API를 전부 구현할 수 있습니다.
웹메일 클라이언트의 구축은 지구상에서 감히 말하건데 ColdFusion보다 간단한 언어는 없습니다. (참조 : http://adoberia.co.kr/iwt/blog/blog.php?tn=flex&id=522 에서 제가 발표한 문서와 예제 중에서 메일 부분을 참조하시길 바랍니다.)
'Server' 카테고리의 다른 글
vsftp port 변경 (0) | 2010.10.05 |
---|---|
mysql 리플리케이션으로 DB를 백업하자 (0) | 2010.10.05 |
vsftpd passive mode 사용 (0) | 2010.10.05 |
find를 사용한 치환 (0) | 2010.10.05 |
mod_rewrite 별도 설치 (0) | 2010.10.05 |