
在 CentOS 上设置定时任务自动备份网站数据非常重要。可以使用定时任务系统来执行备份脚本。创建备份脚本,例如
/opt/website_backup.sh
,并编写如下内容:
#!/bin/bash# 备份网站文件目录tar czf /backup/website_$(date +%Y%m%d).tar.gz /var/www/html# 备份数据库mysqldump -u username -p password>
Linux下设置每天自动备份数据库的方法
本文以Centos7.6系统与Oracle11g为例:一.先找到数据库的环境变量如果是在root账户下,须先登录到数据库所在账户su oraclecat ~/_profileexport PATHexport ORACLE_BASE=/home/nnc_db/appexport ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1export PATH=$PATH:$ORACLE_HOME/binexport ORACLE_SID=orcl环境变量就已经找到了!二.编辑备份的脚本文件vi 先把环境变量复制粘贴到文件,然后定义一个变量date(它的作用是为每天备份的文件命名便于识别),使用expdp命令导出数据库,代码如下:date=$(date +%Y%m%d)expdp 数据库账号/数据库密码@数据库实例名 dumpfile=${date}_db_auto_ schemas=数据库账号名 compression=all退出保存。 三.使用Linux的crontab命令设置定时任务crontab -ecrontab -e的作用是使用文本编辑器设置定时任务(crontab具体用法在此不赘述);输入后在文本编辑器输入0 0 * * * /home/nnc_db/以上代码意为每天的0点0分执行/home/nnc_db下的文件,也就是第二步所创建的文件,需根据自身的备份时间以及文件目录调整;然后重启crond服务即可service crond restart四.测试任务是否成功运行根据我在网上收集的资料来看,有朋友说crontab -e设置成功后三分钟不会生效!也就是说假如你在上午10:00设置好任务,想要测试能否成功,把下次的定时任务设到10:02分,有可能会出现问题!但是这里我用* * * * * /home/nnc_db/设置为每一分钟运行一次,发现没有问题。 还有一个新手大坑就是你直接运行脚本文件会在命令行输出详细过程,而设置定时任务运行是没有反应的!所以想要看自己的脚本是否自动运行了需要到/var/spool/mail/下看日志文件,如图总结以上所述是小编给大家介绍的Linux下设置每天自动备份数据库的方法,大家如有疑问可以留言,或者联系站长。 感谢亲们支持!!!如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
Linux之定时任务Crond解析
定时任务Crond介绍
Crond是linux系统中用来定期执行命令/脚本或指定程序任务的一种服务或软件,一般情况下,我们安装完Centos5/6 linux操作系统之后,默认便会启动Crond任务调度服务。
Crond服务会定期(默认每分钟检查一次)检查系统中是否有要执行的任务工作,如果有,便会根据其预先设定的定时任务规则自动执行该定时任务工作,这个crond定时任务服务就相当于我们平时早起使用的闹钟一样。
必须保留的启动服务:
crond:定时任务服务
network:网络服务
rsyslog:日志服务
sshd:远程链接服务
sysstat:系统监控服务(涉及一系列监控工具)
为什么要使用定时任务呢?
我们举个例子说明:例如,我们的数据库或者代码程序需要每天晚上0点做一次全备份,这样每天夜里都需要执行的周期性工作,如果要让人操作的话,就得每天半夜爬起来,然后登录系统执行任务,执行完接着睡觉。 另外,执行任务的过程也可能持续几个小时,这样一来,一个晚上我们就都不用睡觉了,这样显然是不行的。 那么有什么办法来解决这个周期性的执行任务需求呢?
这就是linux系统的定时任务Crond,这相当于我们平时生活中的闹钟功能,每天晚上提前设置定时,早晨按时叫醒你。
ls -l /var/log/messages* #系统的日志
ls -l /var/log/secure* #用户登录日志
用户执行的任务工作:某个用户或系统管理员定期要做的任务工作,例如每隔5分钟和互联网上时间服务器进行时间同步(这是安装系统基础优化部分的内容),每天晚上0点备份网站站点数据及数据库数据,一般这些工作需要由每个运维自行设置才行。
服务器时间同步
复制代码 代码如下:
echo */5 * * * * /usr/sbin/ntpdate /dev/null 21/var/spool/cron/root
可通过上面的命令设置每5分钟执行一次。 每次将互联网时间同步到本地Linux系统。
crontab -l 查看当前用户的定时任务配置。*号 下面会详讲~~
是NTP服务器地址 ,微软自家的时间服务器。 更多请参考 == 国内常用NTP服务器地址及IP
crontab(命令):正如前面所说的这个命令可以周期性的执行任务工作,例如:每五分钟做一次服务器时间同步。 要执行crontab这个命令,也需要启动一个服务crond才行。 这个crontab命令是生产工作中最常用到的命令,请大家务必掌握。
1、开机自启动crond服务
2、此时此刻服务的状态(查看,开启,关闭)
3、如何查看进程
ps -ef | grep crond
小结提示:
我们所说的crond服务是运行的程序,而crontab是用来管理用户的定时任务(规则)的命令
crond服务是企业生产工作中常用的重要服务,at和anacron很少用,可以忽略
几乎每个服务器都会用到crond服务
上千服务器可以开发分布式定时任务项目方案(批量管理ansible/saltstack)
定时任务Crond使用说明
[root@chengliang ~]# crontab --help
crontab: invalid option -- -
crontab: usage error: unrecognized option
usage: crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
(default operation is replace, per 1003.2)
-e (edit users crontab)
-l (list users crontab)
-r (delete users crontab)
-i (prompt before deleting users crontab)
-s (selinux context)
[root@chengliang ~]#
crontab -l 查看当前用户的定时任务配置
crontab -e 进入当前用户的定时任务vim编辑模式
crontab -u 用户名 -l 查看指定用户的定时任务设置
重点
通过crontab我们可以在固定的间隔时间执行指定的系统指令或script脚本。 时间间隔的单位可以是分钟,小时,日,月,周及以上的任意组合(注意:日和周不要组合)。 crond服务通过crontab命令可以很容易的实现周期性的日志分析或数据备份等企业运维场景工作
使用者权限及定时任务文件
文件说明/etc/(拒绝) 该文件中所列用户不允许使用crontab /etc/(允许) 该文件优先级高于(默认不存在,一般不用) /var/spool/cron/ 所有用户crontab配置文件默认都存在此目录,文件名以用户名命名[root@chengliang ~]# cat /etc/
[root@chengliang~]# su - zcl
[chensiqi@chengliang~]$ crontab -l
You (chensiqi) are not allowed to use this program (crontab)
See crontab(1) for more information
[zcl@chengliang~]$ crontab -e
You (chensiqi) are not allowed to use this program (crontab)
See crontab(1) for more information
crontab { -l | -e } 实际上就是在操作/var/spool/cron/当前用户这样的文件
默认情况下,当用户建立定时任务规则后,该规则记录对应的配置文件会存在于/var/spool/cron中,其crontab配置文件对应的文件名与登录的用户名一致,如:root用户的定时任务配置文件为/var/spool/cron/root
[root@chengliang ~]# ls /var/spool/cron/
root #默认是没有的,只有创建了定时任务才有
[root@chengliang ~]# cat /var/spool/cron/root
*/5 * * * * /sbin/ntpdate /dev/null 21
Crontab定时任务的书写格式很简单,用户的定时任务规则一般分为6个段(每个段通过空格来分隔,系统的定时任务为/etc/crontab,分为7个段,空格来分隔),前五段为时间的设定段,第六段为所要执行的命令或脚本任务段
用户定时任务实例:
01 * * * * cmd #每小时的01分钟执行
02 04 * * * cmd #每天4点的02分钟执行
22 14 * * 00 cmd #每周日的14点22分执行
42 04 01 * * cmd #每月1日的4点42分执行
提示:
1、cmd为要执行的命令或脚本,例如:/bin/sh /server/scripts/
2、每个列之间必须要有一个空格。多个空格可以么?自己实践 == 经我本人测试有多个空格也可以执行!!
时间记忆口诀:分时日月周
crontab 语法格式中特殊符号含义如下表
特殊符号含义* *号,表示任意时间都,实际就是“每”的意思 - 减号表示分隔符,表示一个时间范围,区间段,如17-19点,例如:每天的17,18,19点的00分执行任务。00 17-19 * * * cmd , 逗号,表示分隔时段的意思例如每天的5点10点00分执行任务,00 5,10 * * * cmd /n n代表数字,即“每隔n单位时间”,例如:每10分钟执行一次任务可以写成 * * * * cmd,其中, 的范围是0-59,因此也可以写成0-59/10基于python批量备份网络设备配置及提示配置是否保存
本文分享了一个基于Python实现的网络设备配置备份系统,该系统使用多线程定期备份网络设备配置,并在设备配置发生变化时通过企业微信推送通知。 以下是系统实现的主要功能和步骤。
### 功能概述
### 基础环境
### 代码解析
### 运行结果与应用
系统运行后,能够自动完成网络设备配置的备份,并在配置发生变化时通过企业微信通知运维人员。 这有助于提高网络设备管理的效率和可靠性。
### 结论
本文介绍的Python备份系统提供了网络设备配置自动化备份的解决方案,通过多线程、周期性执行和实时推送通知,大大提升了网络设备管理的效率。 基于此基础,可以进一步扩展功能,实现自动化配置保存、差异配置分析等高级应用。