Shell Script
BACKUP_DIR=
LOG_DIR=
USER=
BACKUP_SERVER_IP=
BACKUP_SERVER_DIR=
LOG_KEEP_DAYS=
function print_msg
{
echo ====================
echo "$1" 1>&2
echo ====================
}
function check_backup_dir
{
if [ ! -d $BACKUP_DIR ]
then
mkdir -p $BACKUP_DIR
if [ $? -gt 0 ]
then
print_msg "λ‘컬 λ°±μ
λλ ν 리 μμ± μ€ν¨"
exit 1
fi
fi
cd $LOG_DIR
for dir in $(find . -mindepth 1 -type d); do
if [ ! -d $BACKUP_DIR/$(basename "$dir") ]; then
print_msg "λ°±μ
νμΌν΄λμμ±: $BACKUP_DIR/$(basename "$dir")"
mkdir -p $BACKUP_DIR/$(basename "$dir")
if [ $? -gt 0 ]
then
print_msg "λ°±μ
λλ ν 리 μμ± μ€ν¨"
exit 1
fi
fi
done
}
function backup_log
{
cd $LOG_DIR
for f in $(find . -type f -name "*.log*" -mtime +$LOG_KEEP_DAYS)
do
print_msg "$f"
FILE=${f#*/}
mv -f $FILE $BACKUP_DIR/$FILE
if [ $? -gt 0 ]
then
print_msg "νμΌ μ΄λ μ€ν¨"
exit 1
fi
done
print_msg "νμΌ μ΄λ μλ£"
}
function compress_file
{
cd $BACKUP_DIR
print_msg "νμΌ μμΆ μμ"
for f in $(find . -type f -name '*.log*')
do
gzip $f
if [ $? -gt 0 ];then
print_msg "νμΌ μμΆ μ€ν¨"
exit 1
fi
done
print_msg "νμΌ μμΆ μλ£"
}
function transfer_file
{
if [ $(ssh -q -o passwordauthentication=no $USER@$BACKUP_SERVER_IP echo OK) != "OK" ]
then
print_msg "λ‘κ·Έμλ² μ μ μ€ν¨"
fi
ssh $USER@$BACKUP_SERVER_IP mkdir -p $BACKUP_SERVER_DIR
if [ $? -gt 0 ]
then
print_msg "λ‘κ·Έμλ² λ°±μ
λλ ν 리 μ€λ₯"
fi
print_msg "νμΌ μ μ‘ μμ"
cd $BACKUP_DIR
scp -r * $USER@$BACKUP_SERVER_IP:$BACKUP_SERVER_DIR
if [ $? -eq 0 ];then
print_msg "νμΌ μ μ‘ μλ£"
else
print_msg "νμΌ μ μ‘ μ€ν¨"
exit 1
fi
}
function delete_file
{
print_msg "νμΌ μμ μμ"
find $BACKUP_DIR -type f -name '*.gz' -exec rm '{}' \;
if [ $? -eq 0 ];then
print_msg "νμΌ μμ μλ£"
else
print_msg "νμΌ μμ μ€ν¨"
fi
}
check_backup_dir
backup_log
compress_file
transfer_file
delete_fileLast updated