Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >解决cron不执行的问题

解决cron不执行的问题

作者头像
全栈程序员站长
发布于 2022-07-08 04:42:39
发布于 2022-07-08 04:42:39
1.5K00
代码可运行
举报
运行总次数:0
代码可运行

在FreeBSD5.4下面做开发,需要定期备份mysql数据,开始在网上找了bash的脚本,但是执行无效,一怒之下,使用php来写,嘿嘿,其实php写脚本也不错滴。备份其实就是把mysql的数据库文件复制出来,当然,也可以使用mysqldump之类的工具把结果生成sql语句,不过我为了方便,就直接复制文件,并且压缩一下。看php代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/usr/local/php/bin/php
<?
$date = "mysql_". date("Ymd_His");
$cmd = "sudo /usr/bin/tar -cf /home/heiyeluren/db_dump/".$date.".tgz /usr/local/mysql/var/";
system($cmd);
?>

把脚本保存到 /home/heiyeluren/db_dump/mysql_dump.php。 上面的代码很好理解吧,就是生成一个按照时间为名字的.tgz文件,保存在我的个人主目录下面,为了脚本能够执行,还要加上 chmod +x /home/heiyeluren/db_dump/mysql_dump.php ,让脚本能够有执行权限。我们自己先试验一次这个脚本,看有效没有: /home/heiyeluren/db_dump/mysql_dump.php 在看看有没有生成文件: ls /home/heiyeluren/db_dump/ 嗯,生成了 mysql_20051206_xxxxx.tgz的文件,证明有效果。

好,切换到root用户:su – root,输入密码,添加cron任务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
crontab -e

加入任务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
*/1 * * * * /usr/local/php/bin/php /home/heiyeluren/db_dump/mysql_dump.php > /dev/null

嘿嘿,设定了一分钟执行一次,设这么快,主要是看看有没有效果。

等了两分钟,看了一下,嗯?怎么在 /home/heiyeluren/db_dump/下面还是没有 .tgz 的文件?怎么回事呢?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
查看cron的日志:

cat /var/log/cron

刷刷列了好几屏幕,看到类似这样的: Dec 6 19:32:00 BSD /usr/sbin/cron[12256]: (root) CMD (/usr/local/php/bin/php /home/heiyeluren/db_dump/mysql_dump.php > /dev/null)

证明我的脚本执行了。。。但是为什么没有效果呢? 哦,我想起来了,好像cron能够把脚本中的输出当作邮件发送给创建cron的用户,嗯,好,我们去掉 > /dev/null 这段,就让我们cron直接发送邮件给我们的root: crontab -e 修改为: */1 * * * * /usr/local/php/bin/php /home/heiyeluren/db_dump/mysql_dump.php 等了一会,看一下邮件,可以使用mail命令来看,也可以直接在 /var/spool/clientmqueue/ 下面看,我们选择第二种: ls /var/spool/clientmqueue/ 列出好多文件: dfjB6BG0SE012107 dfjB6BN0JP012185 dfjB6BU1mj012248 qfjB6BG0SE012107 qfjB6BN0JP012185 qfjB6BU1mj012248 dfjB6BH0aP012123 dfjB6BO1ID012192 dfjB6BV0dL012254 qfjB6BH0aP012123 qfjB6BO1ID012192 qfjB6BV0dL012254 我们打开一个来看: cat /var/spool/clientmqueue/dfjB6BG0SE012107 嗯,看到输出: sudo: not found ???难道是我们的php脚本有问题,不是我测试过没有问题的吗?哦,看提示,原来是sudo命令没有找到,为什么呢?因为所有脚本中引用的程序都必须是绝对路径滴,不然会找不到,唉,犯错了。

嗯,既然我是用root执行的,权限是没有问题滴,何不把sudo给删除呢,说干就干,修改脚本: vi /home/heiyeluren/db_dump/mysql_dump.php 修改为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/usr/local/php/bin/php
<?
$date = "mysql_". date("Ymd_His");
$cmd = "/usr/bin/tar -cf /home/heiyeluren/db_dump/".$date.".tgz /usr/local/mysql/var/";
system($cmd);
?>

嘿嘿,去掉了sodu,嗯,保存退出,看看我们的crontab效果如何。。。

哈哈,一分钟过后,查看下目录: ls /home/heiyeluren/db_dump 嘿嘿,有两个 .tgz 的文件了:mysql_20051206_xxxx.tgz,嗯,证明成功了,但是不能总是让cron给root发邮件呀,不然一会功夫服务器空间就没有了,修改cron任务为: 0 6 * * * /usr/local/php/bin/php /home/heiyeluren/db_dump/mysql_dump.php > /dev/null 就是每天早上的六点执行一次,并且把任何输出到输出到 /dev/null 中,不要给root发邮件。

好,终于解决,不容易,涉及很多知识电,不过增长了经验,不是吗?

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/112344.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年11月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
基于 HBase & Phoenix 构建实时数仓(5)—— 用 Kafka Connect 做实时数据同步
本篇演示安装配置 Kafka connect 插件实现 MySQL 到 Hbase 的实时数据同步。依赖环境见本专栏前面文章。相关软件版本如下:
用户1148526
2024/03/21
5850
基于 HBase & Phoenix 构建实时数仓(5)—— 用 Kafka Connect 做实时数据同步
从 MySQL 到 ClickHouse 实时数据同步 —— MaterializeMySQL + Materialized View
本篇演示使用 ClickHouse 的 MaterializeMySQL 数据库引擎和物化视图,实时将 MySQL 库表中的数据同步到 ClickHouse 的库表中。相关软件版本如下:
用户1148526
2024/04/20
4K0
从 MySQL 到 ClickHouse 实时数据同步 —— MaterializeMySQL + Materialized View
基于 HBase & Phoenix 构建实时数仓(4)—— Kafka 集群安装部署
Kafka 是一个完整的消息系统,常用于实时系统中的消息中转和数据持久化。Kafka 集群安装部署依赖于 Zookeeper,本专栏前面文章介绍了 Zookeeper 安装部署及运行,参见 “安装部署 Zookeeper 集群”。本篇继续介绍在相同主机环境下安装部署 Kafka 集群。
用户1148526
2024/03/12
2350
ClickHouse 集群部署(不需要 Zookeeper)
(1)安装 ClickHouse Server 和 ClickHouse Client
用户1148526
2024/04/18
8.3K2
基于 HBase & Phoenix 构建实时数仓(2)—— HBase 完全分布式安装
完全分布式 HBase 集群的运行依赖于 Zookeeper 和 Hadoop,在前一篇中已经详细介绍了他们的安装部署及运行,参见“基于 HBase & Phoenix 构建实时数仓(1)—— Hadoop HA 安装部署”。本篇继续介绍在相同主机环境下安装配置完全分布式 HBase 集群。
用户1148526
2024/03/09
4420
基于 HBase & Phoenix 构建实时数仓(2)—— HBase 完全分布式安装
基于 HBase & Phoenix 构建实时数仓(1)—— Hadoop HA 安装部署
172.18.4.126 node1 172.18.4.188 node2 172.18.4.71 node3 172.18.4.86 node4
用户1148526
2024/03/08
4470
基于 HBase & Phoenix 构建实时数仓(1)—— Hadoop HA 安装部署
Mysql实时数据变更事件捕获kafka confluent之debezium
如果你的后端应用数据存储使用的MySQL,项目中如果有这样的业务场景你会怎么做呢?
XING辋
2019/03/26
3.5K0
Mysql实时数据变更事件捕获kafka confluent之debezium
湖仓一体电商项目(三):3万字带你从头开始搭建12个大数据项目基础组件
​上篇已经大概讲述大数据组件版本和集群矩阵配置说明,有不清楚的同学,可以阅读上一篇
Lansonli
2022/07/31
1.3K0
湖仓一体电商项目(三):3万字带你从头开始搭建12个大数据项目基础组件
大数据Flink进阶(九):集群基础环境搭建
Flink可以运行在所有类unix环境中,例如:Linux,Mac OS 和Windows,一般企业中使用Flink基于的都是Linux环境,后期我们进行Flink搭建和其他框架整合也是基于linux环境,使用的是Centos7.6版本,JDK使用JDK8版本(Hive版本不支持JDK11,所以这里选择JDK8),本小节主要针对Flink集群使用到的基础环境进行配置,不再从零搭建Centos系统,另外对后续整合使用到的技术框架也一并进行搭建,如果你目前已经有对应的基础环境,可以忽略本小节,Linux及各个搭建组件使用版本如下表所示。
Lansonli
2023/03/30
1.3K0
大数据Flink进阶(九):集群基础环境搭建
大数据ClickHouse(十四):Integration系列表引擎
ClickHouse提供了许多与外部系统集成的方法,包括一些表引擎。这些表引擎与其他类型的表引擎类似,可以用于将外部数据导入到ClickHouse中,或者在ClickHouse中直接操作外部数据源。
Lansonli
2022/08/30
7170
大数据ClickHouse(十四):Integration系列表引擎
kafka 连接器实现 Mysql 数据同步 Elasticsearch
Mysql 作为传统的关系型数据库,主要面向 OLTP,性能优异,支持事务,但是在一些全文检索,复杂查询上面并不快。Elasticsearch 底层基于 Lucense 实现,天然分布式,采用倒排索引存储数据,全文检索效率很高,使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。
Se7en258
2021/05/18
2.7K0
kafka 连接器实现 Mysql 数据同步 Elasticsearch
基于 HBase & Phoenix 构建实时数仓(3)—— Phoenix 安装
继续上一篇,本篇介绍在同一环境中安装 Phoenix,并连接上篇部署的 HBase 集群。
用户1148526
2024/03/09
5170
Kafka——分布式的消息队列
Producers – 生产者 生产者将数据发布到他们选择的主题。生产者负责选择要分配给主题中哪个分区的消息 可以以循环方式完成此操作,仅是为了平衡负载,也可以根据某些语义分区功能(例如基于消息中的某些键)进行此操作。
时间静止不是简史
2020/07/24
1.4K0
Streaming Data Changes from MySQL to Elasticsearch
MySQL Binary Log包含了针对数据库执行DDL(Data Definition Language)和DML(Data Manipulation Language)操作的完整事件,其被广泛应用于数据复制和数据恢复场景。本文所分享的就是一种基于MySQL Binary Log特性实现增量数据近实时同步到Elasticsearch的一种技术。要想实现增量数据的同步,仅仅有binary log是不够的,我们还需要一款变更数据捕获(CDC,Change Data Capture)工具,可能大家很快就会想到阿里巴巴开源的Canal。没错,但本文今天给大家分享一款新的开源工具:Debezium。Debezium构建于Kafka之上,它为MySQL、MongoDB、PostgreSQL、Orcale和Cassandra等一众数据库量身打造了一套完全适配于Kafka Connect的source connector。首先,source connector会实时获取由INSERT、UPDATE和DELETE操作所触发的数据变更事件;然后,将其发送到Kafka topic中;最后,我们使用sink connector将topic中的数据变更事件同步到Elasticsearch中去,从而最终实现数据的近实时流转,如下图所示。
程序猿杜小头
2022/12/01
1.6K0
Streaming Data Changes from MySQL to Elasticsearch
大数据Kafka(三):Kafka的集群搭建以及shell启动命令脚本编写
为了方便将来进行一键启动、关闭Kafka,我们可以编写一个shell脚本来操作。将来只要执行一次该脚本就可以快速启动/关闭Kafka。
Lansonli
2021/10/11
3.5K0
大数据Kafka(三):Kafka的集群搭建以及shell启动命令脚本编写
Debezium kafka connector 运行报错1236
今天发现stag环境kafka connector运行报错( curl 172.18.1.1:8083/connectors/order-center-connector/status)
XING辋
2019/07/19
2.2K0
数据同步工具之FlinkCDC/Canal/Debezium对比
数据准实时复制(CDC)是目前行内实时数据需求大量使用的技术,随着国产化的需求,我们也逐步考虑基于开源产品进行准实时数据同步工具的相关开发,逐步实现对商业产品的替代。本文把市面上常见的几种开源产品,Canal、Debezium、Flink CDC 从原理和适用做了对比,供大家参考。
王知无-import_bigdata
2021/10/27
13.9K0
ClickHouse 实战笔记 第01期:Kafka 数据同步到 ClickHouse
这一期首先聊聊 Kafka 数据同步到 ClickHouse 的其中一个方案:通过 Kafka 引擎方式同步,下面进入实际操作过程(环境:CentOS7.4):
数据库交流
2022/04/25
3.3K0
ClickHouse 实战笔记 第01期:Kafka 数据同步到 ClickHouse
Debezium结合kafka connect实时捕获mysql变更事件写入elasticsearch实现搜索流程
本文将会实现一套完整的Debezium结合Kafka Connect实时捕获MySQL变更事件写入Elasticsearch并实现查询的流程.
XING辋
2019/03/26
7.5K4
Debezium结合kafka connect实时捕获mysql变更事件写入elasticsearch实现搜索流程
Spark Streaming + Canal + Kafka打造Mysql增量数据实时进行监测分析
Spark中的Spark Streaming可以用于实时流项目的开发,实时流项目的数据源除了可以来源于日志、文件、网络端口等,常常也有这种需求,那就是实时分析处理MySQL中的增量数据。
王知无-import_bigdata
2021/04/21
1.6K0
Spark Streaming + Canal + Kafka打造Mysql增量数据实时进行监测分析
推荐阅读
相关推荐
基于 HBase & Phoenix 构建实时数仓(5)—— 用 Kafka Connect 做实时数据同步
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验