计划任务备份
原创目录
对于运维行业来说,最主要的就是备份和监控,而有计划地备份更是重中之重。下面就聊一聊计划任务备份!
计划调度任务
任务调度分为一次性和周期性以及空闲备份。
一次性备份-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
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除