Linux系统日志每日备份脚本

1、脚本功能

日常开发中会有很多场景需要我们去备份系统的配置文件、日志数据等等,本脚本可以定时备份linux的某个文件夹。自动删除X天前的备份数据,灰常的好用。

[root@backup syslog]# more syslog.sh

#!/bin/bash

#bakup system logs

yesterday=`date -d -1day +%Y-%m-%d`

cat /backup/syslos/ip.txt|grep -v ^#|while read ip;

do

   log_dir=`echo $ip|awk '{print $1}'`

   if [ ! -d "/backup/syslog/$log_dir/$yesterday" ];then

        mkdir -p /backup/syslog/$log_dir/$yesterday

   fi

   rsync -avz -e ssh root@$ip:/var/log/messages  /backup/syslog/$log_dir/$yesterday

   rsync -avz -e ssh root@$ip:/var/log/secure  /backup/syslog/$log_dir/$yesterday

   rsync -avz -e ssh root@$ip:/var/log/boot.log  /backup/syslog/$log_dir/$yesterday

   rsync -avz -e ssh root@$ip:/var/log/cron  /backup/syslog/$log_dir/$yesterday

   rsync -avz -e ssh root@$ip:/var/log/lastlog  /backup/syslog/$log_dir/$yesterday

   rsync -avz -e ssh root@$ip:/var/log/audit/audit.log  /backup/syslog/$log_dir/$yesterday

 

    cd /backup/syslogs/$log_dir/$yesterday && tar -zcvf syslog.tar.gz  .

       find . -type f -not -name '*.tar.gz' -exec rm -f {} +

done

find /backup/syslogs/  -type f  -name  "*.tar.gz"  -mtime +90 -exec rm -f {} \;

2、定时执行

通过linux自带的corntab来实现脚本的定时备份,这里我们定义每天0点备份一次日志

0 0 * * * cd /backup/syslog && bash syslog.sh

3、MySql数据库备份脚本

#数据库备份脚本
#!/bin/bash
#备份目录
backup_dir="/data/mysqlbackup"
#目录不在则创建
[ ! -d /mysqlbackup ] && mkdir /data/mysqlbackup
# MySQL 用户名和密码
mysql_username="your_username"         #用户名
mysql_password="your_password"         #密码
# 备份名称前缀
backup_prefix="nlpt"
# 当前日期
current_date=$(date +%Y-%m-%d)
# 备份文件名
backup_file="${backup_prefix}-${current_date}.sql"
# 压缩文件名
compressed_file="${backup_prefix}-${current_date}.tar.gz"
# 备份数据库
mysqldump -u $mysql_username -p${mysql_password} --all-databases > "${backup_dir}/${backup_file}"
# 压缩备份文件
tar -czvf "${backup_dir}/${compressed_file}" "${backup_dir}/${backup_file}"
# 删除原始备份文件
rm "${backup_dir}/${backup_file}"
# 删除30天前的备份文件
find $backup_dir -name $backup_file -type f -mtime +30 -exec rm {} \;

这个脚本可以在 Linux 上运行。它从 MySQL 中备份所有数据库,并将备份命名为以“backup-YYYY-MM-DD”格式命名的文件。备份文件将被压缩为以“backup-YYYY-MM-DD.tar.gz”命名的文件。备份文件和压缩文件将保存在指定的备份目录中。脚本将删除 30 天前的备份文件,以保持备份目录的清洁和整洁。在使用此脚本前,请将“your_username”和“your_password”替换为实际的 MySQL 用户名和密码。

以上基于业务停止运行,数据库在没有数据写入的情况下进行备份,但在我们日常工作中不能停掉业务后进行数据库备份,因此需要添加参数:

--single-transaction

即使数据库受到恶意攻击或不可预见的技术故障,也可以通过备份迅速恢复数据。在发生硬件故障、软件错误或人为错误导致数据损坏时,可以使用备份来恢复到故障前的状态,确保业务流程不受影响。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值