定时任务备份php网站与其mysql数据库

3 篇文章 0 订阅
1 篇文章 0 订阅
前言

为了对web网站进行定时的备份数据,需要进行定时脚本任务的编写,采用shell脚本方式,亦可使用python脚本去完成

shell备份脚本
mkdir -p /data/backup
cat > /data/backup/backup_data.sh <<-EOF
#!/usr/bin/env bash
 
# 备份网站数据库函数
function backupWebMysql() {
  backupFilename=(backup-database_name-$(date "+%Y%m%d").sql)	# database_name为备份的数据库名
  backupMainDir=/opt/backup_data/mysql
  mkdir -p ${backupMainDir} &> /dev/null
  cd ${backupMainDir}
  docker exec mysql mysqldump -udatabase_user -p'xxx' database_name > $backupFilename	# 本案例使用的是docker部署mysql,database_user为数据库用户,一般不为root,创建mysql用户并授权访问database_name的权限
}
 
# 备份网站根目录数据函数
function backupWebData() {
  for backup in "$@"
  do
    backupMainDir=/opt/backup_data/$backup
    mkdir -p ${backupMainDir} &> /dev/null
    cd ${backupMainDir}
    currentDate=$(date +%Y%m%d)
    backupFileName="backup-${backup}-${currentDate}.tar"
    backupFileDir="${backupMainDir}/${backupFileName}"
    tar -zcvf ${backupFileDir} /var/www/html &> /dev/null
  done
}
 
# 保留两份最近数据函数
function retainTwoData() {
  cd /opt/backup_data/$1
  ls -t | awk 'NR>2{print "rm -rf " $0}' | xargs rm -rf &> /dev/null
}
 
# 备份mysql数据
backupWebMysql
# 保留最近两次的mysql备份数据
retainTwoData mysql
 
# 备份web网站数据
backupService=(web)
backupWebData ${backupService[*]}
 
# 保留最近两次的web备份数据
retainTwoData web
EOF
chmod 777 /data/backup/backup_data.sh
每周六凌晨两点执行备份任务
cat >> /etc/crontab <<-EOF
30 2 * * 6 root /usr/bin/bash /data/backup/backup_data.sh &> /dev/null
EOF
systemctl restart crond
结语

… …

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值