自己怎样建企业网站,html5网站和传统网站的优点,网线制作ppt,什么求职网站可以做几份简历背景说明
网上有很多教程#xff0c;写的都是从零搭建一个什么什么#xff0c;基本上都是从无到有的教程#xff0c;但是#xff0c;很少有文章提及搭建好之后如何备份#xff0c;我觉得备份才是一个系统生命周期内永恒的主题#xff0c;是一个值得花时间严肃对待的问题…背景说明
网上有很多教程写的都是从零搭建一个什么什么基本上都是从无到有的教程但是很少有文章提及搭建好之后如何备份我觉得备份才是一个系统生命周期内永恒的主题是一个值得花时间严肃对待的问题。
本文尝试总结一些通用的备份脚本并且把备份文件上传至对象存储来完成备份任务应该能覆盖90%的使用场景了。
脚本通过请教GitHub Copilot Chat生成几个备份脚本体验下最近大火的AIGC能力。
对象存储这里选择腾讯云的COS主要是习惯了平时用得比较多。
注本文涉及的所有脚本默认仅针对Linux环境。
备份MySQL
#!/bin/bash# Set the database name, backup directory, host, username, and password
databasedatabase
backup_directorybackup_directory
hosthost
usernameusername
passwordpassword# Create the backup directory if it doesnt exist
mkdir -p $backup_directory# Create a timestamped backup file name
backup_file$backup_directory/$database-$(date %Y-%m-%d-%H-%M-%S).sql# Backup the database to the backup file
mysqldump -h $host -u $username -p$password $database $backup_file# Delete backups older than 7 days
find $backup_directory -type f -name $database-*.sql -mtime 7 -deleteecho $backup_file备份SQLite
#!/bin/bash# Set the database file path and backup directory
databasedatabase
backup_directorybackup_directory# Create the backup directory if it doesnt exist
mkdir -p $backup_directory# Create a timestamped backup file name
backup_file$backup_directory/$(basename $database)-$(date %Y-%m-%d-%H-%M-%S).db# Backup the database to the backup file using SQLites .backup command
sqlite3 $database .backup $backup_file# Delete backups older than 7 days
find $backup_directory -type f -name *.db -mtime 7 -deleteecho $backup_file备份目录
#!/bin/bash# Set the directory to backup and backup directory
directorydirectory
backup_directorybackup_directory# Create the backup directory if it doesnt exist
mkdir -p $backup_directory# Create a timestamped backup file name
backup_file$backup_directory/$(basename $directory)-$(date %Y-%m-%d-%H-%M-%S).tar.gz# Backup the directory to the backup file
tar -czf $backup_file $directory# Delete backups older than 7 days
find $backup_directory -type f -name *.tar.gz -mtime 7 -deleteecho $backup_file上传至对象存储
因为平时腾讯云用的比较多对腾讯云的产品比较熟悉所以这里就以腾讯云的对象存储为例。
#!/bin/bashread fileprefix$1
bucket$2coscli cp $file cos://$bucket/$prefix/$(basename $file)COSCLI 是腾讯云对象存储Cloud Object StorageCOS提供的客户端命令行工具。具体安装、配置参考官方文档。当然也可以选择s5cmd这种兼容s3协议的客户端支持各家对象存储。
划重点
上面的内容看起来平平无奇我主要想说的是最后这一段。
上文中的备份脚本有个细节最后会输出备份文件的路径目的是为了结合最后一个脚本上传至对象存储。
整体使用逻辑是备份脚本分别写上传脚本共用同一个。
这里以备份 /data/test/目录至对象存储的/test/路径下为示例说明具体使用
backup.sh
#!/bin/bashdirectory/data/test
backup_directory/data/backup/test
mkdir -p $backup_directory
backup_file$backup_directory/$(basename $directory)-$(date %Y-%m-%d-%H-%M-%S).tar.gz
cd $directory
tar -czf $backup_file .
find $backup_directory -type f -name *.tar.gz -mtime 7 -delete
echo $backup_fileupload.sh
#!/bin/bashread fileprefix$1
bucket$2coscli cp $file cos://$bucket/$prefix/$(basename $file)备份命令如下
./backup.sh | ./upload.sh test temp结合crontab就可以实现定时备份了。
另外对于对象存储上的内容可以设置生命周期自动删除旧的备份。如下图腾讯云的对象存储为例设置了备份保留30天。