愿你出走半生,归来仍是少年

Kratos
专注于用户阅读体验的响应式博客主题
  1. 首页
  2. 运维知识
  3. 正文

linux下自动备份应用及主机配置

2020年6月17日 2807点热度 0人点赞 0条评论
#!/bin/bash

###说明
#本脚本使用tar压缩方式,备份1个或多个指定路径的所有文件,存放到指定的路径
#然后,补充备份主机配置信息,并删除10天前的旧备份
#每次备份生成3个文件,即:应用备份、主机配置、备份日志
#  IP地址+主机名+时间.tar.gz
#  IP地址+主机名+时间.hostconf
#  IP地址+主机名+时间.log
#使用方法: backup_app.sh bak_path app_path1 [... app_pathn]
#第1个参数:备份存放路径
#第2-n个参数:应用全路径【每个参数以反斜杠开头,最后不要跟反斜杠】
#将脚本加上x属性: chmod +x backup_app.sh
#配置crontab定时任务示例: 15 01 * * * /root/backup_app.sh /root /root/app_path1 /root/app_path2 /root/app_path3 >/dev/null 2>&1 &

#建议此处载入本机备份用户的环境变量
. /etc/profile
. ~/.bash_profile

#备份文件存放路径
bak_path=$1
if ! test -d ${bak_path}
  then mkdir -p ${bak_path}
fi

#要备份的应用全路径,以空格分隔
app_paths=echo $@|awk -F" " '{for(i=2;i<=NF;i++)name[i-1]=$i} {for(i=1;i<NF;i++)print name[i]}'

#备份保留时间,单位:天
days='10'

localip=/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"|head -1
hostname=hostname
baktime=date "+%Y-%m-%d_%H.%M.%S"
bakname=${localip}.${hostname}.${baktime}

#备份所选路径
echo "开始备份:"date "+%Y-%m-%d_%H.%M.%S"         >> $bak_path/${bakname}.log
cd $bak_path
tar zcvf ${bakname}.tar.gz --exclude=*.tar --exclude=*.out --exclude=*.log --exclude=*.zip --exclude=*.csv --exclude=*.gz --exclude=*.dat $app_paths

#同时备份主机配置信息:hosts文件、文件系统挂载配置、IP配置、环境变量配置;用户crontab任务、磁盘使用情况、文件系统mount现状
echo -e "======= etc_profile =======\n"     > ${bakname}.hostconf
cat /etc/profile >> ${bakname}.hostconf
echo -e "\n======= etc_hosts =======\n"    >> ${bakname}.hostconf
cat /etc/hosts >> ${bakname}.hostconf
echo -e "\n======= etc_fstab =======\n"    >> ${bakname}.hostconf
cat /etc/fstab >> ${bakname}.hostconf
echo -e "\n======= ifconfig =======\n"     >> ${bakname}.hostconf
ifconfig >> ${bakname}.hostconf
echo -e "\n======= bash_profile =======\n" >> ${bakname}.hostconf
cat ~/.bash_profile >> ${bakname}.hostconf
echo -e "\n======= crontab =======\n"      >> ${bakname}.hostconf
crontab -l >> ${bakname}.hostconf
echo -e "\n======= df -h =======\n"        >> ${bakname}.hostconf
df -h >> ${bakname}.hostconf
echo -e "\n======= mount =======\n"        >> ${bakname}.hostconf
mount >> ${bakname}.hostconf

#删除X天之前的备份
find ${bak_path} -name "${localip}.${hostname}.\*" -mtime +${days} -exec rm -f "{} \;"

echo "本次备份得到的备份文件名:"            >> $bak_path/${bakname}.log
ls -l ${bakname}.tar.gz ${bakname}.hostconf  >> $bak_path/${bakname}.log
echo "完成备份:"date "+%Y-%m-%d-%H:%M:%S" >> $bak_path/${bakname}.log

 

标签: 暂无
最后更新:2020年6月17日

liking

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

归档

  • 2026 年 6 月
  • 2026 年 3 月
  • 2026 年 2 月
  • 2025 年 12 月
  • 2025 年 11 月
  • 2025 年 4 月
  • 2025 年 2 月
  • 2025 年 1 月
  • 2024 年 12 月
  • 2024 年 10 月
  • 2024 年 7 月
  • 2024 年 5 月
  • 2024 年 4 月
  • 2023 年 11 月
  • 2023 年 10 月
  • 2023 年 8 月
  • 2023 年 7 月
  • 2023 年 5 月
  • 2023 年 3 月
  • 2023 年 2 月
  • 2022 年 12 月
  • 2022 年 11 月
  • 2022 年 10 月
  • 2022 年 9 月
  • 2022 年 8 月
  • 2022 年 6 月
  • 2022 年 5 月
  • 2022 年 3 月
  • 2022 年 2 月
  • 2022 年 1 月
  • 2021 年 12 月
  • 2021 年 11 月
  • 2021 年 10 月
  • 2021 年 8 月
  • 2021 年 7 月
  • 2021 年 6 月
  • 2021 年 5 月
  • 2021 年 4 月
  • 2021 年 3 月
  • 2021 年 2 月
  • 2021 年 1 月
  • 2020 年 12 月
  • 2020 年 11 月
  • 2020 年 10 月
  • 2020 年 9 月
  • 2020 年 8 月
  • 2020 年 7 月
  • 2020 年 6 月
  • 2020 年 5 月
  • 2020 年 3 月
  • 2020 年 2 月
  • 2019 年 12 月
  • 2019 年 11 月
  • 2019 年 10 月
  • 2019 年 9 月
  • 2019 年 8 月
  • 2019 年 7 月
  • 2019 年 6 月
  • 2019 年 5 月
  • 2019 年 4 月
  • 2019 年 2 月
  • 2018 年 12 月
  • 2018 年 11 月
  • 2018 年 8 月
  • 2018 年 7 月
  • 2018 年 6 月
  • 2018 年 5 月
  • 2018 年 4 月
  • 2018 年 3 月
  • 2018 年 2 月
  • 2018 年 1 月
  • 2017 年 12 月
  • 2017 年 11 月
  • 2017 年 8 月
  • 2017 年 6 月
  • 2017 年 5 月
  • 2017 年 3 月
  • 2016 年 9 月
  • 2016 年 8 月
  • 2016 年 7 月
  • 2016 年 6 月
  • 2016 年 5 月
  • 2015 年 10 月
  • 2014 年 10 月
  • 2014 年 8 月
  • 2014 年 3 月
  • 2013 年 12 月
  • 2013 年 8 月
  • 2013 年 7 月
  • 2013 年 6 月
  • 2013 年 4 月
  • 2012 年 11 月
  • 2012 年 7 月
  • 2012 年 6 月
  • 2012 年 5 月
  • 2012 年 2 月
  • 2011 年 10 月
  • 2011 年 8 月
  • 2011 年 3 月
  • 2010 年 11 月
  • 2010 年 10 月
  • 2010 年 9 月
  • 2010 年 8 月
  • 2010 年 7 月
  • 2010 年 5 月
  • 2010 年 4 月
  • 2010 年 1 月
  • 2009 年 11 月
  • 2009 年 8 月
  • 2009 年 5 月
  • 2009 年 3 月
  • 2009 年 2 月
  • 2008 年 11 月
  • 2008 年 10 月
  • 2008 年 8 月
  • 2008 年 4 月
  • 2007 年 4 月

分类

  • BigData
  • kubernetes
  • linux
  • MongoDB
  • MySQL
  • Oracle
  • PostgreSQL
  • 备份恢复
  • 安装配置
  • 性能优化
  • 技术杂谈
  • 未分类
  • 梦回红楼
  • 测试
  • 生活点滴
  • 网站建设
  • 自制工具
  • 轻松一刻
  • 运维知识
  • 问题处理

COPYRIGHT © 2026 愿你出走半生,归来仍是少年. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang