当前位置: 首页 > news >正文

计划任务备份

目录

计划调度任务

一次性备份-at

空闲备份-batch

周期性备份-crond

备份mysql案例


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

计划调度任务

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

一次性备份-at

        格式如下:

at 24:00

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

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

        查看任务

[root@localhost ~]# atq
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命令后不能指定时间。

        格式如下:

[root@localhost ~]# batch
at> 

周期性备份-crond

        格式如下:

[root@localhost ~]# crontab -e [-u 用户名]
* * * * * /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

mount /dev/cdrom /media​
tar zxf /media/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz​
mv mysql-5.7.20-linux-glibc2.12-x86_64  /usr/local/mysql
echo "export PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile
source /etc/profile
rm -rf /var/run/yum.pid
yum remove -y mariadb-libs
useradd  mysql
mkdir -p /usr/local/mysql/data
chown -R mysql.mysql /usr/local/mysql/data
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --
basedir=/usr/local/mysql --datadir=/usr/local/mysql/data​
cp /usr/local/mysql/support-files/mysql.server 
​/etc/init.d/mysqld
cat >> /etc/my.cnf << end
[mysqld]
​
user=mysql
​
basedir=/usr/local/mysql
​
datadir=/usr/local/mysql/data
​
socket=/tmp/mysql.sock
​
server_id=6
​
port=3306
​
[mysql]
​
socket=/tmp/mysql.sock
​
prompt=mysql>
​
end
​cat >> /etc/systemd/system/mysqld.service << end​
[Unit]
​
Description=MySQL Server
​
Documentation=man:mysqld(8)
​
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
​
After=network.target
​
After=syslog.target
​
[Install]
​
WantedBy=multi-user.target
​
[Service]
​
User=mysql
​
Group=mysql
​
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
​
LimitNOFILE = 5000
​
end​
systemctl restart mysqld

2、改密码

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

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

[root@localhost ~]#mysql -uroot -p123.com 
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、创建备份脚本

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

6、创建计划任务

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

crontab -l 查看计划任务

crontab -r 删除计划任务

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

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

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

注意:脚本免交互命令

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

相关文章:

  • JAVA:TCP通信
  • Qt5.12的快捷安装
  • leetcode 409 Longest Palindrome 最长回文串(简单)
  • 【C语言基础】Chap. 4. 初识指针和结构体
  • CentOS8挂载本地ISO 配置本地YUM源
  • 手把手开发Admin 系列二(统一格式篇)
  • java计算机毕业设计物品分享网站源码+系统+数据库+lw文档+mybatis+运行部署
  • 基于MQ的分布式事务实现方案
  • 基于PaddleOCR开发easy click文字识别插件
  • 建立对象模型— 如何确定类与对象?
  • VMware Workstation Pro16 的下载与安装
  • java计算机毕业设计基于安卓Android的电子废弃物回收利用APP
  • PostgreSQL LISTEN 与NOTIFY命令
  • 基于ssm的养老智慧服务平台毕业设计源码071526
  • MySQL 安装详细步骤
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • JavaScript类型识别
  • MYSQL 的 IF 函数
  • nginx 负载服务器优化
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 山寨一个 Promise
  • 我建了一个叫Hello World的项目
  • 再谈express与koa的对比
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • #NOIP 2014# day.2 T2 寻找道路
  • (ibm)Java 语言的 XPath API
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (三)Honghu Cloud云架构一定时调度平台
  • (学习日记)2024.02.29:UCOSIII第二节
  • (一)Dubbo快速入门、介绍、使用
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .net MVC中使用angularJs刷新页面数据列表
  • .net 按比例显示图片的缩略图
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!
  • [ web基础篇 ] Burp Suite 爆破 Basic 认证密码
  • [AIGC] Redis基础命令集详细介绍
  • [ai笔记3] ai春晚观后感-谈谈ai与艺术
  • [C++]模板与STL简介
  • [C++进阶篇]STL中vector的使用
  • [Google Guava] 1.1-使用和避免null
  • [HackMyVM]靶场Crossbow
  • [HNOI2006]鬼谷子的钱袋
  • [J2ME]如何替换Google Map静态地图自带的Marker
  • [LeetCode]—Permutations 求全排列
  • [LeetCode]—Simplify Path 简化路径表达式
  • [MAUI]集成高德地图组件至.NET MAUI Blazor项目
  • [NOIP2018 PJ T4]对称二叉树
  • [orleans2.1]这是你没玩过的船新版本
  • [PTA]数组循环右移