#!/bin/bash ############################################################ # $Name: create_backup_cron_script.lib # $Version: v1.0 # $Functions: # 1 function_create_server_rsync_bak_script "${cron_scripts}" "${backup_dir}" "${localpath_watch}" # 2 function_create_client_rsync_bak_script "${cron_scripts}" "${backup_dir}" "${localpath_watch}" \ # "${passwordfile}" "${module_backup}" 'store-rsync-01' # $Author: Jeson Li # $organization: www.lzbbg.cn # $Create Date: 2017-03-10 # $Mail: libobin@tom.com # $Description: Linux create cron backup script ############################################################ function_create_server_rsync_bak_script(){ cron_scripts="${1:-/server/cron_scripts}" backup_dir="$2" nfs_data="$3" cat >$cron_scripts/server_rsync_bak.sh<<-EOF #!/bin/bash ############################################################ # \$Name: server_rsync_bak.sh # \$Version: v1.0 # \$Functions: # \$Author: Jeson Li # \$organization: www.lzbbg.cn # \$Create Date: 2017-03-10 # \$Mail: libobin@tom.com # \$Description: Use Linux backup_server backup data and mail to user script \ # and Receive from client backup data ############################################################ PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin" Local_IP="\$(ip addr show eth0|awk -F"[ \t/]*" '\$2~"^inet\$"{print \$3}'|head -1)" Time=\$(date +%F_%w) backup_dir="${backup_dir}" web_dir='/webCodes' nfs_data="${nfs_data}" buckup_log='buckup.log' mail_addr='1270963692@qq.com' echo "\n\$(date)\n" >>\${backup_dir}\${buckup_log} mkdir -p \${backup_dir}\${Local_IP} && cd \${backup_dir}\${Local_IP} \ && tar -czhf \${Time}_tar.gz \${nfs_data} \${web_dir} /var/spool/cron /etc/{sudoers,mail.rc,rc.d/rc.local,hosts,sysctl.conf,ssh/sshd_config} &>/dev/null [ -s \${Time}_tar.gz ] && md5sum \${Time}_tar.gz >\${Time}_tar.gz.md5 \ && sleep 600 \ && find \${backup_dir} -maxdepth 2 -mtime +3 -name "*-*-*_*" ! -name "*-*-*_6_*" |xargs rm -fr for second_dir_path in \$(ls -d \${backup_dir}/[0-9]??.*/) do for three_dir_path in \$(ls -d \${second_dir_path}*\${Time}/) do cd \$three_dir_path for md5_file in \$(ls *.md5) do md5sum -c \${md5_file} &>/dev/null if [ \$? -eq 0 ];then echo -e "Backup [ \$three_dir_path\${md5_file} ] [ OK ]" >>\${backup_dir}\${buckup_log} else echo -e "Backup [ \$three_dir_path\${md5_file} ] .......... [ false ]" >>\${backup_dir}\${buckup_log} fi done done cd \$second_dir_path md5sum -c \${Time}_tar.gz.md5 &>/dev/null if [ \$? -eq 0 ];then echo -e "Backup [ \$second_dir_path\${Time}_tar.gz ] [ OK ]" >>\${backup_dir}\${buckup_log} else echo -e "Backup [ \$second_dir_path\${Time}_tar.gz ] .......... [ false ]" >>\${backup_dir}\${buckup_log} fi done mail -s "IN \$(hostname) check backup messages " \${mail_addr}<\${backup_dir}\${buckup_log} [ \$(grep -c '' \${backup_dir}\${buckup_log}) -gt 150 ] && sed -i '1,50d' \${backup_dir}\${buckup_log} EOF chmod +x $cron_scripts/*.sh echo -e "# Backup_Server backup created $(date +%F) for $(whoami)\n00 00 * * * $cron_scripts/server_rsync_bak.sh &>/dev/null\n" >>/var/spool/cron/$(whoami) } function_create_client_rsync_bak_script(){ cron_scripts="$1" backup_dir="$2" nfs_data="$3" passwordfile="$4" module_backup="$5" Backup_server_host_name="$6" cat >$cron_scripts/client_rsync_bak.sh<<-EOF #!/bin/bash ############################################################ # \$Name: client_rsync_bak.sh # \$Version: v1.0 # \$Functions: # \$Author: Jeson Li # \$organization: www.lzbbg.cn # \$Create Date: 2017-03-10 # \$Mail: libobin@tom.com # \$Description: Use Linux client_server backup and rsync backup_data to backup_server ############################################################ PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin" Local_IP="\$(ip addr show eth0|awk -F"[ \t/]*" '\$2~"^inet\$"{print \$3}'|head -1)" Time=\$(date +%F_%w) Backup_server_host_name="${Backup_server_host_name}" backup_dir="${backup_dir}" web_dir='/webCodes' nfs_data="${nfs_data}" passwordfile="${passwordfile}" module_backup="${module_backup}" mkdir -p \${backup_dir}\${Local_IP} && cd \${backup_dir}\${Local_IP} \ && tar -czhf \${Time}_tar.gz \${nfs_data} \${web_dir} /var/spool/cron /etc/{sudoers,mail.rc,rc.d/rc.local,hosts,sysctl.conf,ssh/sshd_config} &>/dev/null [ -s \${Time}_tar.gz ] && md5sum \${Time}_tar.gz >\${Time}_tar.gz.md5 \ && rsync -rz --password-file=\${passwordfile} \${backup_dir} rsync_backup@\${Backup_server_host_name}::\${module_backup} \ && find \${backup_dir} -maxdepth 2 -mtime +2 -name "*-*-*_*" |xargs rm -fr EOF chmod +x $cron_scripts/*.sh echo -e "# Clinte backup created $(date +%F) for $(whoami)\n00 00 * * * $cron_scripts/client_rsync_bak.sh &>/dev/null\n" >>/var/spool/cron/$(whoami) }
浙公网安备 33010602011771号