CentOS 打包备份到Amazon S3
S3便宜又安全。
数据库导出
- 导出所有数据库
mysqldump -u root -p --all-databases --default-character-set=utf8 > all.sql
- 导入所有数据库
mysql -u root -p --default-character-set=utf8 < all.sql
- 导出1个数据库
mysqldump -u root -p --default-character-set=utf8 数据库名 > sql文件名.sql
- 导入1个数据库
mysql -u root -p --default-character-set=utf8 数据库名 < sql文件名.sql
打包文件
1. 打包
将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar
# 仅打包,不压缩
tar -cvf /tmp/etc.tar /etc
# 仅打包2018年1月1日以后的新文件,不压缩!
tar -cvf /tmp/etc.tar --newwer-mtime="2018/01/01" /etc
# 打包后,以 gzip 压缩
tar -zcvf /tmp/etc.tar.gz /etc
# 打包后,以 bzip2 压缩
tar -jcvf /tmp/etc.tar.bz2 /etc
# 解压.tar
tar -xf example.tar
# 解压.tar.gz
tar -zxf example.tar
- 特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。
- 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file
- 如果加 j 参数,则以 .tar.bz2 来作为附档名
- 上述指令在执行的时候,会显示一个警告讯息:
tar: Removing leading '/' from member names
那是关於绝对路径的特殊设定。
2. 分卷
split -b 2G etc.tar -d -a 3 etc.tar00
结果是etc.tar001, etc.tar002, etc.tar003 ……
-b
分卷大小etc.tar
要切分的文件-d
给切分后的文件添加数字后缀-a 3
指定数字后缀的长度etc.tar00
指定切分后文件的前缀
上传
3. 获取Amazon S3 安全凭证
- 登陆Amazon aws,点击用户名的下拉菜单,进入我的安全凭证(IAM MANAGEMENT CONSOLE)。
- 右侧点组,创建新组,下一步。
- 搜索s3,选择策略“AmazonS3FullAccess”,下一步。
- 右侧点击用户,添加用户。访问类型选择“编程访问”。
- 将用户添加到刚才创建的组。
- 创建成功后,页面会显示用户名,访问密钥 ID和私有访问密钥。密钥只会显示一次,请记录下来。如果忘记密钥可以删除该用户,重复以上4-6步新建用户。
4. 创建一个S3储存容器
- 打开顶端服务下拉菜单,选择S3。
- 创建储存桶
5.安装上传工具S3CMD
- 查看官网http://s3tools.org/download
S3CMD需要Python2.6以上,输入python -V查看版本是否符合要求。以及pip,输入pip -V查看是否安装了pip。 - 安装S3CMD
pip install s3cmd
。 - 配置S3CMD
s3cmd --configure
。
6.开始上传
--multipart-chunk-size-mb
调整分片大小,网速快的话,可以把分片调大一点。
可以修改配置文件~/.s3cfg
中默认的分片大小。s3cmd put etc.tar00* s3:\\somebucket\somefolder\ --multipart-chunk-size-mb=100
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。