아래 스크립트를 복사하여 저장한후 실행 권한을 주고 /etc/crontab에 넣어두어 매일 실행하도록 합니다.
# vi /etc/crontab
00 8 * * * root /usr/local/bin/php /root/bin/home_backup.php > /dev/null 2>&1
매일 8시 정각에 해당 스크립트를 실행합니다.
######## home_backup.php ##############
#!/usr/local/bin/php -q
<?php
// 기본 설정
$backup_dir = "/back";
$source_dir = "/home";
$back_save = 5; // 5일간 보관
// 새로운 디렉토리 생성
$date = date('Ymd', time());
$backup_path = sprintf("%s/%s", $backup_dir, $date);
if (!file_exists($backup_path)) {
system(sprintf("mkdir %s", $backup_path));
}
// 압축할 디렉토리로 이동
chdir($source_dir);
// 해당 디렉토리 압축
$dirs = opendir($source_dir);
while ($file = readdir($dirs)) {
if ($file == '.' || $file == '..') continue;
system(sprintf("tar cvfzp %s/%s.tar.gz %s", $backup_path, $file, $file));
}
// 5일 지난 데이타 삭제
$prev_date = date('Ymd', strtotime("-$back_save day $date"));
if (file_exists($backup_dir.'/'.$prev_date)) {
system(sprintf("rm -rf %s/%s", $backup_dir, $prev_date));
}
?>