linux备份系统到NAS共享

以Centos为例

首先安装支持组件:

yum -y install cifs-utils

创建挂载目录

mkdir /osbak

挂载共享目录到osbak目录

mount -t cifs -o username="pt",password="xxxxxx",vers=2.0 //192.168.1.6/backup /osbak

不报错就表示挂载完成

可以cd /osbak 进去看看,挂载完成后使用tar进行备份即可。卸载挂载可以使用umount /osbak

 

#常规备份
tar cvpzf /osbak/backup.tgz / --exclude=/osbak --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys

#恢复
tar xvpfz /osbak/backup.tgz  -C /

 

使用bz2备份(体积更小) 

#安装bzip2
yum -y install bzip2

#备份
tar cvpjf /osbak/backup.bz2 / --exclude=/osbak --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys

#恢复
tar xvpfj /osbak/backup.bz2  -C /

 

 

#数据库备份
mysqldump -u <用户名> -p<密码> <数据库名> > database_backup.sql

#数据库恢复
mysql -u <用户名> -p<密码> <数据库名> < database_backup.sql

 

除了手动备份和恢复,我们还可以使用cron定时任务来实现自动备份。具体操作步骤如下:

创建一个名为backup.sh的备份脚本,内容如下:

#!/bin/bash

timestamp=$(date +%Y%m%d%H%M%S)
backup_dir="/osbackup/$timestamp"
website_dir="/www"
database_backup_file="/osbackup/database_$timestamp.sql"
database_name="<数据库名>"
database_user="<用户名>"
database_password="<密码>"

mkdir -p $backup_dir
tar -czvf $backup_dir/website_backup.tar.gz $website_dir
mysqldump -u $database_user -p$database_password $database_name > $database_backup_file

执行命令crontab -e打开定时任务编辑器,添加以下内容:

#每天的午夜(0点0分)执行备份脚本。
0 0 * * * /path/to/backup.sh

 

tar:
  特点
  1、保留权限
  2、适合备份整个目录
  3、可以选择不同的压缩方式
  4、如果选择不压缩还能实现增量备份,部份还原,参考man tar

 

 

posted @ 2023-08-08 09:19  Colin.liu  阅读(374)  评论(0编辑  收藏  举报