#!/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字

上传中....