Linux定时执行任务Crontab

1. 安装Crontab

1.1 安装命令

 # vixie-cron软件包是cron的主程序
yum install vixie-cron # crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序
yum install crontabs

1.2 启动命令

# 启动服务
/sbin/service crond start
# 关闭服务
/sbin/service crond stop
#重启服务
/sbin/service crond restart
#重新载入配置
/sbin/service crond reload

1.3 查看相关状态

# 查看服务状态
service crond status
# 手动启动服务
service crond start

1.4 开机自启

chkconfig --level 35 crond on

2. crontab使用

2.1 定时器规则

以下是一条定时器的规则

# 每天0时0分执行`/usr/home/mysql.sh`的文件,并将日志写入`/usr/home/mysql.log`
0 0 * * * /usr/home/mysql.sh >> /usr/home/mysql.log

crontab 文件的格式:

{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}
  • minute:分钟,区间为0-59
  • hour:小时,区间为0-23
  • day-of-month:每月的日,区间为0–31;
  • month:区间为1–12;1是1月,12是12月;
  • day-of-week:区间为0–6;周日是0。

除了数字还有以下几个特殊的符号需要特殊说明:

  • *:代表所有的取值范围内的数字;
  • /:代表每的意思,”*/5″表示每5个单位;
  • -:代表从某个数字到某个数字;
  • ,:分开几个离散的数字

以下是部分定时器示例

# 每五分钟执行
*/5 * * * * /usr/home/mysql.sh
# 每小时执行
0 * * * * /usr/home/mysql.sh
# 每天执行
0 0 * * * /usr/home/mysql.sh
# 每周执行
0 0 * * 0 /usr/home/mysql.sh
# 每月执行
0 0 1 * * /usr/home/mysql.sh
# 每年执行
0 0 1 1 * /usr/home/mysql.sh # 每天早上6点
0 6 * * * /usr/home/mysql.sh
# 每两个小时
0 */2 * * * /usr/home/mysql.sh # 晚上11点到早上8点之间每两个小时
0 23-7/2 * * * /usr/home/mysql.sh # 1月1日早上4点
0 4 1 1 * /usr/home/mysql.sh

3. 定时更新博客

3.1 编写更新博客shell

#!/bin/bash

#
# Solo docker 更新重启脚本
#
# 1. 请注意修改参数
# 2. 可将该脚本加入 crontab,每日凌晨运行来实现自动更新
# docker pull b3log/solo
docker stop solo
docker rm solo
docker run --detach --name solo --restart=on-failure:10 --network=host \
--env RUNTIME_DB="MYSQL" \
--env JDBC_USERNAME="root" \
--env JDBC_PASSWORD="123456" \
--env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
--env JDBC_URL="jdbc:mysql://127.0.0.1:3306/blog?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" \
b3log/solo --listen_port=8081 --server_scheme=https --server_host=blog.booleandev.xyz --server_port=

在添加定时任务之前,可提前执行下该文件,看看是否能够更新成功

如果没有执行权限 则执行以下命令chmod 777 文件名

3.2 将shell添加到crontab定时任务中

# 打开crontab定时器文件
crontab -e # 我的shell文件时放置于`/usr/local/soft/crontab/solo.sh`
# 将日志文件写于/usr/local/soft/crontab/solo.log
0 0 * * 0 /usr/local/soft/crontab/solo.sh >> /usr/local/soft/crontab/solo.log # 等到时间,会自动执行,就可以看到solo.log文件内容

4. 定时备份mysql数据库

4.1 编写shell文件

#!/bin/bash

#获取当前时间
date_now=$(date "+%Y%m%d-%H%M%S")
# 备份文件夹目录
backUpFolder=/usr/local/soft/backup/mysql/blog
username="root"
password="123456"
db_name="solo"
#定义备份文件名
fileName="${db_name}_${date_now}.sql"
#定义备份文件目录
backUpFileName="${backUpFolder}/${fileName}"
echo "starting backup mysql ${db_name} at ${date_now}."
/usr/bin/mysqldump -u${username} -p${password} --lock-all-tables --flush-logs ${db_name} > ${backUpFileName}
#进入到备份文件目录
cd ${backUpFolder}
#压缩备份文件
tar zcvf ${fileName}.tar.gz ${fileName}

4.2 将shell添加到crontab定时任务中

# 打开crontab定时器文件
crontab -e # 我的shell文件时放置于`/usr/local/soft/crontab/solo.sh`
# 将日志文件写于/usr/local/soft/crontab/solo.log
0 0 * * * /usr/local/soft/crontab/mysql.sh >> /usr/local/soft/crontab/mysql.log # 等到时间,会自动执行,就可以看到mysql.log文件内容

5. 参考链接

果冻想Linux定时执行任务Crontab

Galaxy' HomeCentOS安装crontab及使用方法

Crontab定时任务更新SOLO以及备份数据库的更多相关文章

  1. LINUX学习笔记——LINUX下EXP命令全库备份数据库文件

    LINUX下EXP命令全库备份数据库文件 1)建立备份目录,目录操作权限授权给Oracle用户 mkdir /backup  --创建backup文件夹 cd  /   --进入cd语句 ls  -l ...

  2. ubuntu crontab 定时备份postgres数据库并上传ftp服务器

    最近公司要求备份数据库,所以就查了比较作的资料.废话不多说,入正题. 目的:定期备份ubuntu下的postgres数据库,打包上传到指定ftp服务器. 经过查找资料,解决方法: ①编写备份数据库.打 ...

  3. linux下使用crontab定时备份MYSQL数据库的方法:

    摘要 linux下使用crontab定时备份MYSQL数据库的方法: 只需按照下面3步做,一切都在你的掌控之下: 第一步:在服务器上配置备份目录代码: ------------------------ ...

  4. shell脚本采用crontab定时备份数据库日志

    测试服务器上才用定时脚本备份一个数据库 并打包压缩成tar避免文件过大 脚本如下: 测试服务器的shell backup_mysql.sh #!/bin/bash BASE_PATH=/alidata ...

  5. crontab的相关设置&linux定时备份数据库

    对于才了解crontab的人来说,应该按照以下的步骤来设置crontab 1.首先要检查是否装了crontab http://blog.sina.com.cn/s/blog_4881040d01011 ...

  6. CentOS下使用crontab+mysqldump实现定时自动备份数据库

    一 : 为什么要进行数据库的备份? 最主要的原因:尽可能地减少损失,包括时间上.精神上和金钱上的损失.很多人都不注意备份数据,以致在发生问题后丢失大量的重要数据.要知道,在地球上网是很危险的,即使做好 ...

  7. Linux 使用crontab定时备份Mysql数据库

    项目中数据库的数据是至关重要的!在实际项目中,遇到有客户机房断电导致数据库数据丢失的问题,又因为备份容灾不及时,导致部分数据恢复不了,而刚好这部分丢失的数据对于客户来说又是至关重要的,那么怎么办呢?盲 ...

  8. linux下mysql定时备份数据库

    linux下mysql定时备份数据库 (2010-10-21 12:40:17) 转载▼ 标签: 杂谈   一.用命令实现备份 首页进入mysql的bin目录 1.备份数据#mysqldump -uu ...

  9. Linux下定时备份数据库

    linux下使用crontab定时备份MYSQL数据库的方法只需按照下面3步做,一切都在你的掌控之下: 第一步:在服务器上配置备份目录代码: mkdir /var/lib/mysqlbackup cd ...

  10. MySQL定时备份之使用Linux下的crontab定时备份实例

    这篇文章主要介绍了使用Linux下的crontab进行MySQL定时备份的例子,需要的朋友可以参考下   复制代码代码如下: ##################################### ...

随机推荐

  1. .NET Core 和 .NET 标准类库项目类型有什么区别?

    在 Visual Studio 中,至少可以创建三种不同类型的类库: 类库(.NET Framework) 类库(.NET 标准) 类库 (.NET Core) 虽然第一种是我们多年来一直在使用的,但 ...

  2. 从零开始,打造一款属于自己的JavaScript编程语言

    @charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...

  3. 微信小程序map 动态markers的解决方法

    先上效果图 这里演示点击标记点,改变他的气泡背景颜色和字体颜色 1.动态修改数据,需要用到 this.setData(), 2.markers 是一个数组,这里需要涉及setData 修改内部属性的方 ...

  4. 一个老程序员, 两个小时能用corsur做出什么样的东西

    背景 最近cosur太火了, 很多没开发背景的人也直接说0基础建站了, 互联网项目的门槛越高越低. 第一次看到一个行业拼命卷自己的.  作为一个16年的老程序员了, 肯定得试试这款颠覆性的产品. 在上 ...

  5. 【中文】【吴恩达课后编程作业】Course 1 - 神经网络和深度学习 - 第二周作业

    [吴恩达课后编程作业]Course 1 - 神经网络和深度学习 - 第二周作业 - 具有神经网络思维的Logistic回归 上一篇:[课程1 - 第二周测验]※※※※※ [回到目录]※※※※※下一篇: ...

  6. 函数使用十二:BAPI_CONTRACT_CREATE

    *&---------------------------------------------------------------------* *& Report ZBAPI_WB2 ...

  7. 数栈技术分享:开源·数栈-扩展FlinkSQL实现流与维表的join

    一.扩展FlinkSQL实现流与维表的join ​ 二.为什么要扩展FlinkSQL? 1.实时计算需要完全SQL化 SQL是数据处理中使用最广泛的语言.它允许用户简明扼要地声明他们的业务逻辑.大数据 ...

  8. 1-python中的两大法宝和加载数据

    python中的两大法宝和加载数据 1. Python两大法宝 ① Python3.6.3相当于一个package,package里面有不同的区域,不同的区域有不同的工具. ② Python语法有两大 ...

  9. Java源码分析系列笔记-9.CountDownLatch

    目录 1. 是什么 2. 如何使用 2.1. CountDownLatch VS CyclicBarrier 3. uml 4. 构造方法 4.1. Sync[AQS子类] 5. countDown方 ...

  10. 记一次ADL导致的C++代码编译错误

    这篇文章主要讲讲c++的ADL,顺便说说为什么很多c++的IDE都会让你尽量不要include用不上的头文件. 和其他c++文章一样,这篇也会有基础回顾环节,所以不用担心看不懂,但读者最好还是得有c+ ...