计划任务备份

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 计划任务备份

       对于运维行业来说,最主要的就是备份和监控,而有计划地备份更是重中之重。下面就聊一聊计划任务备份!

计划调度任务

       任务调度分为一次性和周期性以及空闲备份。

一次性备份-at

       格式如下:

at 24:00

       例:创建一次性备份任务晚上十二点备份,备份etc目录。

1. [root@localhost ~]# at 24:00
2. at> tar zcf /backup/etc_$(date +%F).tar.gz /etc
3. at>         //按ctrl+d保存退出
4. job 1 at Fri Aug 26 00:00:00 2022

       查看任务

1. [root@localhost ~]# atq
2. 1   Fri Aug 26 00:00:00 2022 a root

       查看第二条任务内容

[root@localhost ~]# at -c 2

       删除at任务

[root@localhost ~]# atrm 1

空闲备份-batch

       batch直接调用at运行计划任务,所以方法和at相同。  batch不同于at的地方仅在于其所生成的任务计划是在系统空闲时执行的,故batch命令后不能指定时间。

       格式如下:

1. [root@localhost ~]# batch
2. at>

周期性备份-crond

       格式如下:

1. [root@localhost ~]# crontab -e [-u 用户名]
2. * * * * * /usr/bin/touch file

       上面命令五个星星分别代表“分 时 日 月 周”,计划任务中必须写命令的绝对路径,可以用whereis命令查看命令的绝对路径。

常用时间技巧如下:

"*":表示任何时刻都接受的意思,所有时间段位上不能同时为数字。

"数字":表示具体某一小时某一分钟等,如 8 8 8 8 * 表示每年的8月 8日8时8分 。

",":表示分隔时段,表示一段时间范围,如 8 9,13 * * * 表示每天9:08和13:08。

"*/":在对应的时间位的有效取值上每#一次,如 */8 * * * * 表示每8分钟一次。

"-":某个时间位上的连续区间,如 10-50/8 * * * * 表示第10分和第50分之间每8分钟一次。

备份mysql案例

       没有mysql需要安装,这里以二进制方式安装,相对编译安装会快很多,缺点是需要各种配置。安装直接执行下面脚本即可完成,但是需要做好准备工作(mysql光盘或tar包)。

       要求:每周日晚上23:30做一次完整备份;周一到周六晚上23:30做增量备份。 1、安装mysql5.7。

1、安装mysql

1. mount /dev/cdrom /media
2. tar zxf /media/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
3. mv mysql-5.7.20-linux-glibc2.12-x86_64  /usr/local/mysql
4. echo "export PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile
5. source /etc/profile
6. rm -rf /var/run/yum.pid
7. yum remove -y mariadb-libs
8. useradd  mysql
9. mkdir -p /usr/local/mysql/data
10. chown -R mysql.mysql /usr/local/mysql/data
11. /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --
12. basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
13. cp /usr/local/mysql/support-files/mysql.server 
14. /etc/init.d/mysqld
15. cat >> /etc/my.cnf << end
16. [mysqld]
17. 
18. user=mysql
19. 
20. basedir=/usr/local/mysql
21. 
22. datadir=/usr/local/mysql/data
23. 
24. socket=/tmp/mysql.sock
25. 
26. server_id=6
27. 
28. port=3306
29. 
30. [mysql]
31. 
32. socket=/tmp/mysql.sock
33. 
34. prompt=mysql>
35. 
36. end
37. cat >> /etc/systemd/system/mysqld.service << end
38. [Unit]
39. 
40. Description=MySQL Server
41. 
42. Documentation=man:mysqld(8)
43. 
44. Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
45. 
46. After=network.target
47. 
48. After=syslog.target
49. 
50. [Install]
51. 
52. WantedBy=multi-user.target
53. 
54. [Service]
55. 
56. User=mysql
57. 
58. Group=mysql
59. 
60. ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
61. 
62. LimitNOFILE = 5000
63. 
64. end
65. systemctl restart mysqld

2、改密码

1. 通过执行/usr/local/mysql/bin/mysql_secure_installation修改
2. 或
3. [root@localhost ~]# mysqladmin -uroot password
4. New password: 
5. Confirm new password:

3、复制world.sql到/root,登录数据库

1. [root@localhost ~]#mysql -uroot -p123.com 
2. source /root/world.sql

4、查看库,切换库,查看表

show databases; 查看数据库

create database test; 创建数据库

drop database test; 删除数据库

use test; 切换数据库

show tables; 在库里面查看表

select * from stu; 查看表内容

create table stu(id int,name varchar(20),age int); 创建表 stu 增加三个列(id,name,age) int 数字 varchar(20) 表示20个字符

insert into stu values(1,'zhangsan',19); 添加一条记录 drop table stu; 删除表stu

5、创建备份脚本

1. [root@localhost ~]# mkdir /sh 
2. [root@localhost ~]# vim  /sh/backup.sh
3. #!/bin/bash
4. /usr/local/mysql/bin/mysqldump -uroot -p123.com --all-databases /backup/mysql_$(date +%F).sql

6、创建计划任务

1. [root@localhost ~]# crontab -e
2. 30 23 * * 0 /bin/bash /sh/backup.sh

crontab -l 查看计划任务

crontab -r 删除计划任务

7、xfs文件系统的备份与恢复

环境:添加第二块磁盘,挂载到/jimi

1. [root@localhost ~]# xfsdump -f /opt/dump_sdb1 /dev/sdb1     #备份磁盘分区
2. [root@localhost ~]# xfsrestore -f /opt/dump_sdb1 /jimi      #还原
3. [root@localhost ~]# xfsdump -I                              #查看所有备份记录

注意:脚本免交互命令

[root@localhost ~]# xfsdump -f /opt/dump_sdb2 /dev/sdb1 -L sdb1_opt_v1 -M sdb1


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
存储 运维 监控
|
6月前
|
安全
linuxdd命令备份与恢复
`dd`命令实例:用于备份/恢复磁盘,如`dd if=/dev/hdb of=/dev/hdd`复制整个硬盘。还能压缩备份(`dd if=/dev/hdb | gzip &gt; /root/image.gz`)、恢复(`gzip -dc /root/image.gz | dd of=/dev/hdb`)、备份MBR(`dd if=/dev/hda of=/root/image count=1 bs=512`)、创建swap分区(`dd if=/dev/zero of=/swapfile`)
132 1
|
6月前
|
缓存 Linux Shell
Linux使用crontab定时任务定时备份数据库
Linux使用crontab定时任务定时备份数据库
193 0
|
应用服务中间件 Shell nginx
定时任务计划:归档备份
定时任务计划:归档备份
89 1
LXJ
|
Shell
文件备份脚本
服务器上文件备份脚本-shell
LXJ
114 0
|
Shell 安全 开发工具
计划任务
crontab crontab -e 写计划任务crontab -l 列出所有计划任务crontab -r 删除计划任务crontab -u username 管理员可以去管理其他用户的计划任务 * * * * * command 分 时 日 月 周 可以限制使用crontab的用户账号,可以配置的文件有:/etc/cron.
1180 0
|
数据库 关系型数据库 PostgreSQL
Confluence 6 如何备份和恢复
如何备份 有关备份你数据库使用的命令与你使用的具体数据库有关,例如针对 PostgreSQL 数据库,备份命令为 pg_dump dbname > outfile。
1654 0
|
安全 Windows 数据安全/隐私保护
|
关系型数据库 MySQL 数据库

相关实验场景

更多
下一篇
无影云桌面