#!/bin/bash
#author: castle liu
#date: 2014/06/04
#desc: merge files from a given dir,files should start with ${_base_name}
#usage: mergefile -d[-d] [-c] -[-m]
_yesterday=`date -d yesterday "%y%m%d"`
_work_d=""
_default_dir="${_work_d}${_yesterday}"
_backup_dir="${_work_d}"`date -d yesterday "%y%m"`
_base_name=""
_full_name="${_base_name}.${_yesterday}"
_header='date "%f %t"'
_log_tmp=''
###func###
#print
#echo strings in a more confertable way
print(){
string=$1
echo "`eval ${_header}` ${string} "
}
#help
#print help info
help() {
cat < /dev/null
rm -rf `basename ${file}`
print 'done.'
cd ${dir}
}
#merge_file
#pass in a dirname
merge_file(){
dir=$1
_pwd=`pwd`
cd ${dir}
print "creating file:${_full_name}"
touch ${_full_name}
count=`ls ${_base_name}*.txt|wc -l`
if [[ ${count} -gt 0 ]];then
ls ${_base_name}*.txt|while read file
do
if [[ "${file}" != "eof" ]];then
print "hanlering file:${file}"
cat ${file} >> ${_full_name}
rm -rf ${file}
fi
done
print "file created."
if [[ ${_compress} ]];then
targz "${_full_name}"
fi
if [[ ${_move_to_backup_dir} ]];then
mv "${_full_name}.tar.gz" ${_backup_dir}
if [[ $? -eq 0 ]];then
export _delete_dir=true
fi
fi
else
print "there is no required file in dir:${_dir}"
error_handler "002" "no_required_file" 2
fi
cd ${_pwd}
}
###main###
#parsing args
while getopts "d:cmd" arg
do
case ${arg} in
d)
export _dir="${optarg}"
export _use_dir=true
;;
c)
export _compress=true
;;
m)
export _move_to_backup_dir=true
;;
d) export _use_default=true
;;
h) help
exit 0
;;
?)
error_handler 001 "param_error" 2
;;
esac
done
print "mergefile start..."
if [[ ${_use_dir} ]];then
print "using dir:${_dir}"
if [[ -d ${_dir} ]];then
name=`basename ${_dir}`
export _full_name=${_base_name}.${name}
export _backup_dir=${_work_d}${name:0:6}
#create backup dir if not exists.
if [[ ! -d ${_backup_dir} ]];then
mkdir -p ${_backup_dir}
fi
merge_file ${_dir}
if [[ ${_delete_dir} ]];then
print "deleting dir:${_dir}"
rm -rf ${_dir}
fi
else
print "dir not exists,pls check."
error_handler "003" "dir_not_exists." 2
fi
elif [[ ${_use_default} ]];then
print "using default dir:${_default_dir}"
#create backup dir if not exists.
if [[ ! -d ${_backup_dir} ]];then
mkdir -p ${_backup_dir}
fi
if [[ -d ${_default_dir} ]];then
merge_file ${_default_dir}
if [[ ${_delete_dir} ]];then
print "deleting dir:${_default_dir}"
rm -rf ${_default_dir}
fi
else
print "default dir not exists,pls check."
error_handler "004" "default_dir_not_exists" 3
fi
else
error_handler 005 "param_error" 2
fi
用户登录
还没有账号?立即注册
用户注册
投稿取消
| 文章分类: |
|
还能输入300字
上传中....
aoiyj