• 计划任务备份


    目录

    计划调度任务

    一次性备份-at

    空闲备份-batch

    周期性备份-crond

    备份mysql案例


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

    计划调度任务

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

    一次性备份-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. user=mysql
    18. basedir=/usr/local/mysql
    19. datadir=/usr/local/mysql/data
    20. socket=/tmp/mysql.sock
    21. server_id=6
    22. port=3306
    23. [mysql]
    24. socket=/tmp/mysql.sock
    25. prompt=mysql>
    26. end
    27. ​cat >> /etc/systemd/system/mysqld.service << end​
    28. [Unit]
    29. Description=MySQL Server
    30. Documentation=man:mysqld(8)
    31. Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
    32. After=network.target
    33. After=syslog.target
    34. [Install]
    35. WantedBy=multi-user.target
    36. [Service]
    37. User=mysql
    38. Group=mysql
    39. ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
    40. LimitNOFILE = 5000
    41. end
    42. systemctl restart mysqld

    2、改密码

    1. 通过执行/usr/local/mysql/bin/mysql_secure_installation修改
    2. [root@localhost ~]# mysqladmin -uroot password
    3. New password:
    4. 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 

  • 相关阅读:
    线束测试设备有哪些类型的设备,汽车线束测试仪推荐
    特殊类设计[上]
    AI游戏设计的半年度复盘;大模型+智能音箱再起波澜;昇思大模型技术公开课第2期;出海注册经验分享;如何使用LoRA微调Llama 2 | ShowMeAI日报
    微信小程序的高校教室自习室占座预约系统java+uniapp
    2000年-2020年31省市城乡收入差距泰尔指数
    Lucene构建索引的原理及源代码分析
    为了工作刷题
    Python获取免费代理IP,并全部测试一遍,结果大失所望
    五、WebGPU Vertex Buffers 顶点缓冲区
    QT万年历
  • 原文地址:https://blog.csdn.net/qq_61116007/article/details/126606860