웹사이트 소스 및 데이터베이스의 백업

웹사이트의 백업을 위해 자동백업 스크립트를 자주 이용한다. 이유는 만에 하나 발생할지도 모르는 돌발상황에 대비하기 위함인데, 그 돌발상황이라는 것은 예측하기 힘들다. 작업자의 실수로 또는 서버 관리자의 실수로, 드물지만 천재지변에 의해 홈페이지 소스가 온전하지 못할 수가 있다. 특히나 현재 개발중에 있는 상황이라면 하루하루 급변 하는 소스를 관리해주어야할 필요가 있다. 그래서 아래와 같은 스크립트를 이용해 소스들을 백업하곤 한다. 가능하다면 한시간에 한번씩 백업을 하고 싶지만, 서버의 용량 문제로 인해 그렇게까지 할 수는 없었고 하루에 한번씩 백업을 한다. 아래는 그 백업스크립트의 소스이다.

backup.sh

#!/bin/sh

umask 066
cd /backup

dat=`date +%y%m%d%H%M`
find /backup/*.tar.gz -mtime +12 -exec rm -f {} \;

tar czf blog_home.$dat.tar.gz /home/blog
mysqldump -ublog
-ppassword blog > /backup/blog_mysql.$dat.sql

#chown backup.backup *.tar.gz
chmod 600 *
umask 022

crontab

위 스크립트를 실행하는 것은 crontab 에서 담당한다.

[root@manuz backup]# crontab -l
0 22 * * * /root/backup.sh
[root@manuz backup]#



2011/03/22 14:15 2011/03/22 14:15
Posted by 마누
트랙백 0 : 댓글 0 댓글을 작성하시려면 클릭하세요

시작하며.

linux 또는 unix 시스템에서 많은 사람들이 기본적인 FTP Server 로 사용하고 있는 vsftpd 의 기능에 대해서 포스팅한다. 이번에 다루고자 하는 것은 chroot를 특정유저만 사용하게 하거나 또는 반대로 특정유저만 사용하지 않도록 하는 방법에 대한 것이다.

chroot 라는 것은

chroot 라는 것은 보안을 위해서 사용자의 홈 디렉토리를 루트로 인식하게끔 만들어 버리는 기능이다. 즉, 이 기능을 사용해서 사용자가 접속하게 되면 자신의 홈디렉토리가 root 디렉토리 처럼 보이기 때문이 홈디렉토리의 상위로 이동이 불가능 하게 된다. 보안상으로 굉장히 도움이 되는 기능이다.

아무튼 이 기능을 vsftpd 상에서 기본적으로 제공하고 있는데, 일반 유저들에게는 chroot 기능을 사용하게 하는 것이 보안상 이점이 있다지만, 본인의 계정에는 이 기능을 사용하기 싫었기에 본인이 사용하는 유저 root 와 manuz 라는 아이디는 위 기능을 사용하지 않도록 설정해 보겠다.

시스템 소개

CentOS 5.5 를 사용중이다.

설정방법

/etc/vsftpd/vsftpd.conf 를 수정한다.

1. chroot_list_enable 값을 YES 로 해준다. chroot 를 아이디 별로 설정하겠다는 뜻이다. ex) chroot_list_enable=YES

2. chroot_list_file 값을 설정한다. 아이디를 설정할 파일경로와 이름을 설정해주면 된다. ex) chroot_list_file=/etc/vsftpd/chroot_list

3. chroot_local_user 값을 설정한다. YES 로 설정하게 되면 list_file 에 설정된 아이디는 chroot 기능을 사용하지 않게 된다. 반대로 NO 로 설정하게 되면 list_file 에 설정된 아이디는 자신의 홈 디렉토리가 루트가 될 것이다.

4. /etc/vsftpd/chroot_list 2번에서 설정한 파일을 생성해서 아이디를 적어준다. 아이디는 엔터로 구분하여 그냥 나열해주면 된다. ex) root 엔터 manuz

위를 모두 수정한 후에는 vsftpd 를 재 시작  해준다. 위 기능은 데몬의 재시작이 필요하다.

2011/02/22 17:27 2011/02/22 17:27
Posted by 마누
트랙백 0 : 댓글 2 댓글을 작성하시려면 클릭하세요

/etc/rc.d/init.d/mysqld start
/usr/bin/mysqladmin -u root password ROOT_PW

mysql -uroot -p
grant all privileges on . to 'root'@'%' with grant option;
flush privileges;

create database DB_NAME;
create user 'USER_ID'@'localhost' identified by 'USER_PW';
grant all privileges on DB_NAME.* to 'USER_ID'@'localhost' with grant option;
grant all privileges on DB_NAME.* to 'USER_ID'@'%' with grant option;
flush privileges;


2011/02/21 18:06 2011/02/21 18:06
Posted by 마누
트랙백 0 : 댓글 0 댓글을 작성하시려면 클릭하세요
방법 1. 자신의 홈디렉토리에 있는 .vimrc 파일에 해당 설정을 적어둔다.
~/.vimrc
set ts=4
set sw=4
set ai
set nu
syn on

방법 2. 환경변수에 해당 설정을 넣어둔다. (.bash_profile)
EXINIT='set nu ai ts=4 sw=4 syn on'
export EXINIT
2008/04/01 09:54 2008/04/01 09:54
Posted by 마누
트랙백 0 : 댓글 0 댓글을 작성하시려면 클릭하세요

pio 그리고 udma5

2004/09/14 02:59
이번에 리눅스 서버셋팅을 하면서
LVM 으로 하드 두개를 묶게 되는 상황이 왔다
묶고 나서 테스트를 해보니..
너무나도 느리고 버벅대길래.. 하드에 이상이 있는줄 알고
하드를 제거하려고 했다.
그런데 하드 최고속도는 얼마인데 이렇게 느린걸까 하고 테스트 하던 도중..
[root@localhost root]# hdparm -t /dev/hda

/dev/hda:
Timing buffered disk reads: 64 MB in 29.39 seconds = 2.18 MB/sec
[root@localhost root]# hdparm -t /dev/hdc

/dev/hdc:
Timing buffered disk reads: 64 MB in 29.44 seconds = 2.17 MB/sec
[root@localhost root]#

이런 경악할만한 속도가 나왔다
LVM 으로 묶고 테스트 하던 속도가 나온것이다..
이건 pio 속도가 아닌가 하고..
하드디스크 설정이 어떻게 되어있는지 확인을 해보니..
[root@localhost root]# hdparm /dev/hda

/dev/hda:
multcount = 16 (on)
IO_support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 0 (off)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 24321/255/63, sectors = 390721968, start = 0
[root@localhost root]#

이럴수가.. dma 모드가 꺼져 있는 것이었다!!!
경악을 한 후에..
udma5 모드로 수정후 속도를 다시 체크해보았다..
[root@localhost root]# hdparm -d1 -X udma5 /dev/hda

/dev/hda:
setting using_dma to 1 (on)
setting xfermode to 69 (UltraDMA mode5)
using_dma = 1 (on)
[root@localhost root]# hdparm -t /dev/hda

/dev/hda:
Timing buffered disk reads: 64 MB in 1.17 seconds = 54.70 MB/sec
[root@localhost root]#

아는 형이 알려줘서 알았긴 했지만..
고쳐놓고 나니 너무나도 허무하고
하드디스크 속도때문에 하루종일 고생했던거 생각하니..
열받기도 했다..
이런 이런..
2004/09/14 02:59 2004/09/14 02:59
Posted by 마누
트랙백 0 : 댓글 0 댓글을 작성하시려면 클릭하세요

LVM 만들기 -3- ...

2004/09/13 01:06
난 372.56GB 이라는 사용량 전부를 하나로 사용하고 싶은 생각이다
mp3 라는 이름으로 볼륨을 만들어 보겠다
[root@localhost /]# lvcreate -L 372G -n mp3 lvm0
lvcreate -- doing automatic backup of "lvm0"
lvcreate -- logical volume "/dev/lvm0/mp3" successfully created

[root@localhost /]#

이제 리눅스 파일 시스템을 만든다
[root@localhost /]# mkfs -V -t ext3 /dev/lvm0/mp3
mkfs version 2.11y (Feb 24 2003)
mkfs.ext3 /dev/lvm0/mp3
mke2fs 1.32 (09-Nov-2002)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
48758784 inodes, 97517568 blocks
4875878 blocks (5.00%) reserved for the super user
First data block=0
2976 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968

Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 27 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@localhost /]#
확인을 해보자
[root@localhost /]# vgdisplay -v lvm0
--- Volume group ---
VG Name lvm0
VG Access read/write
VG Status available/resizable
VG # 0
MAX LV 256
Cur LV 1
Open LV 0
MAX LV Size 1023.97 GB
Max PV 256
Cur PV 2
Act PV 2
VG Size 372.56 GB
PE Size 16 MB
Total PE 23844
Alloc PE / Size 23808 / 372 GB
Free PE / Size 36 / 576 MB
VG UUID S2l6O0-ga42-HDIp-3bba-Wkgv-uveK-n0oYK6

--- Logical volume ---
LV Name /dev/lvm0/mp3
VG Name lvm0
LV Write Access read/write
LV Status available
LV # 1
# open 0
LV Size 372 GB
Current LE 23808
Allocated LE 23808
Allocation next free
Read ahead sectors 1024
Block device 58:0


--- Physical volumes ---
PV Name (#) /dev/hdc1 (2)
PV Status available / allocatable
Total PE / Free PE 11922 / 36

PV Name (#) /dev/hda1 (1)
PV Status available / allocatable
Total PE / Free PE 11922 / 0



[root@localhost /]#

잘 설정 된것 같다.
이제 만들어진 mp3 라는 이름의 볼륨을 마운트 해서 사용하면 된다 :)
2004/09/13 01:06 2004/09/13 01:06
Posted by 마누
트랙백 0 : 댓글 1 댓글을 작성하시려면 클릭하세요

LVM 만들기 -2- ...

2004/09/13 01:01
그리고, 우리는 이들 두개의 PVs를 'lvm0'라 불리는 볼륨 그룹에 추가한다
[root@localhost /]# vgcreate -s 16M lvm0 /dev/hda1 /dev/hdc1
vgcreate -- INFO: maximum logical volume size is 1023.97 Gigabyte
vgcreate -- doing automatic backup of volume group "lvm0"
vgcreate -- volume group "lvm0" successfully created and activated

[root@localhost /]#
vgcreate 할 때 -s 옵션은 PhysicalExtentSize 입니다.
기본 4MB 로는 256GB 까지 LV를 만들 수 있습니다.
그보다 큰 LV를 생성하기위해서는 2의 제곱의 수를 지정해줘야 합니다. 2^N ( 8KB ~ 16GB )
전 400 기가를 묶을예정이기에 그냥 2보다 큰 16으로 했습니다.

이제 만들어진 볼륨 그룹을 보자
[root@localhost /]# vgdisplay -v lvm0
--- Volume group ---
VG Name lvm0
VG Access read/write
VG Status available/resizable
VG # 0
MAX LV 256
Cur LV 0
Open LV 0
MAX LV Size 1023.97 GB
Max PV 256
Cur PV 2
Act PV 2
VG Size 372.56 GB
PE Size 16 MB
Total PE 23844
Alloc PE / Size 0 / 0
Free PE / Size 23844 / 372.56 GB
VG UUID S2l6O0-ga42-HDIp-3bba-Wkgv-uveK-n0oYK6

--- No logical volumes defined in "lvm0" ---


--- Physical volumes ---
PV Name (#) /dev/hdc1 (2)
PV Status available / allocatable
Total PE / Free PE 11922 / 11922

PV Name (#) /dev/hda1 (1)
PV Status available / allocatable
Total PE / Free PE 11922 / 11922



[root@localhost /]#
이 결과물에서 눈여겨 볼 곳은
Alloc PE / Size 0 / 0 // 이곳은 현재 볼륨의 사용량
Free PE / Size 23844 / 372.56 GB // 현재 볼륨의 사용가능한 양
이 두문장 이다
난앞으로 372기가를 할당하여 사용하는 것이 가능하다

할당해서 사용해보자!!
2004/09/13 01:01 2004/09/13 01:01
Posted by 마누
트랙백 0 : 댓글 0 댓글을 작성하시려면 클릭하세요

LVM 만들기 -1- ...

2004/09/13 00:38
요즘 LINUX 서버 셋팅과 관리해주는 허접한 일들을 해주고 있다.
200 GB 하드 2개를 하나로 합쳐야 하는 상황이 와서
SOFT RAID 를 시도해 보았으나..
짧은 지식과 능력으로 인해 실패..

LVM 으로 다시 시도해 보게 되었다.

참고문서 : http://doc.kldp.org/wiki.php/DocbookSgml/LVM-HOWTO

먼저 fdisk 를 이용해 LVM 으로 묶을 파티션을 Linux LVM 시스템으로 바꾸어 준다
[root@localhost /]# fdisk /dev/hda

The number of cylinders for this disk is set to 24321.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): p

Disk /dev/hda: 200.0 GB, 200049647616 bytes
255 heads, 63 sectors/track, 24321 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 1 24321 195358401 8e Linux LVM

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost /]#

같은 방법으로 다른 하드의 파티션 까지...

이제 lvmtab 을 생성해야 한다.
[root@localhost /]# vgscan
vgscan -- reading all physical volumes (this may take a while...)
vgscan -- "/etc/lvmtab" and "/etc/lvmtab.d" successfully created
vgscan -- WARNING: This program does not do a VGDA backup of your volume group

[root@localhost /]#

이제 물리적 볼륨을 만들어야 한다
[root@localhost /]# pvcreate /dev/hda1
pvcreate -- physical volume "/dev/hda1" successfully created

[root@localhost /]# pvcreate /dev/hdc1
pvcreate -- physical volume "/dev/hdc1" successfully created

[root@localhost /]#
2004/09/13 00:38 2004/09/13 00:38
Posted by 마누
트랙백 0 : 댓글 0 댓글을 작성하시려면 클릭하세요

행복합니다^^
행복합니다. 김형원이 운영하는 블로그 입니다. 제가 쓴 글과 영상들이 있고 웹관련 정보들이 있습니다.

카테고리

전체 (159)
Life Story.. (46)
Love Story.. (2)
Meditation with Life (41)
Web Accesiblity (1)
Writing (2)
Meditation (15)
WEB (11)
IT (31)
Movie Clip (UCC) (8)

글 보관함

달력

«   2012/02   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      
Total : 300795
Today : 40 Yesterday : 232