Linux定时任务,执行shell文件失败问题mailed 73 bytes of output but got status 0x004b#012报错解决
Linux定时任务,执行shell文件失败问题
1 前言
最近一直被别人攻击数据库,ε=(´ο`*)))唉。又不是什么重要数据,怎么一直逮住我不放了。实在没有什么办法了,只能把数据库做做备份,将损失降到最低吧o(╥﹏╥)o
2 编写shell脚本
2.1 创建shell脚本文件
touch xxx.sh
2.2 编辑shell脚本文件
vim xxx.sh
MySQL备份基本命令
mysqldump -uxxx -pxxx dbname > backup.sql
将上面MySQL的基本导出语句的用户名,密码,数据库,导出的SQL文件名补全就可以了(根据自己的需求)
3 创建定时任务
使用crontab
命令创建定时任务
crontab -e
我自己设置的是中午11:30与晚上的23:30进行备份
,时间根据自己的需求来确定。表达式后面是脚本所在的位置(注意名字与路径的正确
)
4 出现的问题
当我觉得万事大吉时,我做了一个测试,将定时任务改成每分钟执行,官产效果。问题出现了。首先并没有导出相应的SQL文件,然后我查看了日志,日志如下
我在网上找这个错误是什么意思,但是基本没有说是什么意思的(发送邮件失败
),大多是叫我去找在/var/sppol/cron
文件夹下找一个名叫root
的文件,下面有具体的报错信息,但是当我去下面找这个文件时,哪里有什么root
文件ヽ(ー_ー)ノ
5 解决问题
5.1 重定向找出错误信息
上面的信息是发送邮件报错,没有具体的报错信息。首先我想到的是,可能是我的语句写错了,但是经过一番检验,发现并没有错。那究竟是什么问题呢?
为了找到错误的具体信息,我把语句改成了
mysqldump -uxxx -pxxx dbname > backup.sql >xxx.log 2>&1
将它的标准输出
和错误输出信息
都重定向到了一个日志中
经过一番操作,我发现了日志中的信息
/bin/sh: /usr/xxx.sh: Permission denied
拒绝访问(我是root用户,排除需要root才能执行的原因,然后就在这时突然想到了还有文件的执行权限
问题)
查看文件是否有执行权限,结果果然不出所料
马上添加执行权限(看情况添加权限,我只添加了文件所有者的执行权限)
chmod u+x xxx.sh
5.2 报错仍未解决
终于,这次shell脚本执行了,导出了SQL文件,但是通过查看日志,发现还是会出现mailed 73 bytes of output but got status 0x004b#012
这个问题,这是为什么呢?(都快哭了o(╥﹏╥)o)
通过查看maillog,发现了下面的报错
cat /var/log/maillog
postfix/sendmail[8087]: fatal: parameter inet_interfaces: no local interface found for ::1
这是什么错误了(参数inet_interfaces:未找到::1的本地接口),又经过一番查找,终于找到了解决办法
将/etc/postfix/main.cf
文件中inet_interfaces值改为all
vim /etc/postfix/main.cf
再次查看日志,发现没有报错了,也在/var/sppol/cron
文件夹下找到了名叫root
的文件了,开心(✪ω✪)
至此,问题全部解决,完结撒花✿✿ヽ(°▽°)ノ✿
Linux定时任务,执行shell文件失败问题mailed 73 bytes of output but got status 0x004b#012报错解决相关推荐
- crontab无法执行且(root) MAIL (mailed 54 bytes of output but got status 0x004b#012错误
今日在一台阿里云主机使用crontab,发现脚本无法执行,状态: shell脚本已经有执行权限chmod +x xxx.sh sh文件第一行加上了she-bang:#!/bin/bash 确认 cro ...
- linux crontab : mailed 85 bytes of output but got status 0x004b#012 问题
查看linux crontab 运行 log(/var/log/cron) 发现有大量如下报错: mailed 85 bytes of output but got status 0x004b#012 ...
- 错误(mailed 59 bytes of output but got status 0x004b#012)
linux设置crontab定时任务scrapy crawl mySpider时,出现错误CROND[10166]: (root) MAIL (mailed 59 bytes of output bu ...
- centos7.5 定时任务不执行,定时任务日志报错信息为 MAIL (mailed 68 bytes of output but got status 0x004b#012)
1.给脚本可执行权限 chmod u+x crontab-log.sh 执行的脚本文件必须要有对应用户的执行权限 2.添加任务 crontab -e */1 * * * * /data/ggzy/re ...
- linux定时任务执行脚本文件找不到,linux中脚本放入计划任务当中为什么没有执行呢?...
如何搭建linux下c++开发环境 方法/步骤 1 1.下载 Linux 下的 Oracle Instant Client 有rpm包和zip包两种,下载任意一种即可,这里以下载的 zip 包为例,下 ...
- linux系列(七):shell编程、shell概念、ssh协议概念、执行shell文件的三种方式
1 概念 https://www.xshell.com/zh/free-for-home-school/ 1.1 xshell(执行linux命令的客户端软件) Xshell [1] 是一个强大的安全 ...
- python定时任务执行shell脚本切割Nginx日志-慎用
Python定时任务执行shell脚本切割Nginx日志(慎用) 缘起 我们有一个Nginx服务用来接收埋点上报数据,输出的日志文件比较大,Nginx没有自带日志分割组件,这样输出的日志文件就比较大, ...
- Linux 定时执行shell 脚本
2019年第 85 篇文章,总第 109 篇文章 本文大约2000字,阅读大约需要6分钟 crontab 可以在指定的时间执行一个shell脚本以及执行一系列 Linux 命令. 定时执行shell ...
- linux执行shell过程日志,Android之在linux终端执行shell脚本直接打印当前运行app的日志...
1.问题 我们一般很多时候会需要在ubuntu终端上打印当前运行app的日志,我们一般常见的做法是 1).获取包名 打开当前运行的app,然后输入如下命令,然后在第一行TASK后面的就可以看到包名 a ...
最新文章
- 5300亿NLP模型“威震天-图灵”发布,由4480块A100训练,微软英伟达联合出品
- Android canvas.translate
- python 第一课
- C/C++extern关键字
- materialize_使用Materialize快速介绍材料设计
- vs窗体 oracle,VS2010连接oracle数据库的简单例子
- 2017.5.9 寻找道路 思考记录
- 某班的成绩出来了,现在老师要把班级的成绩打印出来,和 显示当前时间
- Apache2 实现https访问http服务
- mysqldump 快还是navicat快_剪辑软件评测:选喵影工厂、爱剪辑还是快剪辑?
- 时间状语:(现在完成时)/ 固定语句(现在完成时)/29主动表被动/23过去完成时:又 名 过去的过去;/过去将来时/(过去完成时)/25 过去完成时,固定搭配/26 时间状语 (将来完成时)
- docker--Hub
- 使用 PD Recover 恢复 PD 集群
- 【文献阅读】基于深层语言模型的古汉语知识表示及自动断句研究
- Django计算机毕业设计交通违章举报平台(程序+lw)Python
- 赛轮转债上市价格预测
- matlab 4轴机器人建模,SCARA机器人运动学分析及MATLAB建模仿真.pdf
- terraform 安装及命令
- arduino loar_采用ESP8266和Arduino设计基于IoT的患者健康监测系统
- 2022年Github学生包搞起 || copilot、jetbrains一起搞