使用crontab遇到的一点问题,报错/var/spool/cron : Permission denied和bash: /usr/bin/chattr: Permission denied

2023-05-16

问题:在Linux服务器上设置crontab定时任务执行laravel任务调度的时候,crontab -e 无法保存。会报错/var/spool/cron : Permission denied。

  1. 于是百度到是var/spool下的cron目录被用过了chattr命令 加了i或者i和a属性。具体可以查看chattr命令!

  2. 然后cd /var/spool 执行命令

    lsattr ./cron
    

    并没有什么反应,捣鼓半天发现只需要在/var/spool目录下执行

    lsattr
    

    即可。就会发现cron目录确实被加上了ia属性

    ----ia-------e-- ./cron
    
  3. 只需要执行如下命令即可。

    chattr -ai /var/spool/cron
    
  4. 但是问题来了,这时候我这里又报错 bash: /usr/bin/chattr: Permission denied

  5. 再次去/usr/bin下查看chattr,发现该文件竟然也被加上了i属性。就等于自己给自己加了属性。使用chattr -i /usr/bin/chattr肯定是不可以的。于是再次百度。解决办法!!!

    [root@c7 bin]# ls -lh chattr;lsattr chattr
    -rw-r--r--. 1 root root 12K Jun  9 19:59 chattr
    ----i----------- chattr
    [root@c7 bin]# cp chattr chattr.new
    [root@c7 bin]# chmod a+x chattr.new
    [root@c7 bin]# chattr.new -i chattr
    [root@c7 bin]# rm -f chattr.new
    [root@c7 bin]# chmod a+x chattr
    [root@c7 bin]# ls -lh chattr;lsattr chattr
    -rwxr-xr-x. 1 root root 12K Jun  9 19:59 chattr
    ---------------- chattr
    
  6. 然后再去/var/spool目录下把cron的a、i属性去掉即可编辑保存了。
    搞定!这样就可以继续编辑crontab -e 的定时任务了。

    附加几个小知识。
    1. laravel任务调度命令
    * * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
    

    /dev/null 2>&1 什么意思?

    /dev/null将标准输出重定向到空设备,即我们常说的“黑洞”
    	2>表示错误输出
    	&表示等同的意思
    	1标准输出
    	2>&1就表示错误输出重定向等同于标准输出
    	所以>/dev/null 2>&1就表示将标准输出及错误输出全部重定向到“黑洞”,这么做可以有效的防止结果输出到控制台,以及inode节点被写满。
    
    1. 任务调度的时间设置
    ->cron('* * * * *');	在自定义Cron调度上运行任务
    ->everyMinute();	每分钟运行一次任务
    ->everyFiveMinutes();	每五分钟运行一次任务
    ->everyTenMinutes();	每十分钟运行一次任务
    ->everyFifteenMinutes();	每十五分钟运行一次任务
    ->everyThirtyMinutes();	每三十分钟运行一次任务
    ->hourly();	每小时运行一次任务
    ->hourlyAt(17);	每小时第十七分钟运行一次任务
    ->daily();	每天凌晨零点运行任务
    ->dailyAt('13:00');	每天13:00运行任务
    ->twiceDaily(1, 13);	每天1:00 & 13:00运行任务
    ->weekly();	每周运行一次任务
    ->monthly();	每月运行一次任务
    ->monthlyOn(4, '15:00');	每月415:00运行一次任务
    ->quarterly();	每个季度运行一次
    ->yearly();	每年运行一次
    ->timezone('America/New_York');	设置时区
    
    $schedule->call(function () {
        // 每周星期一13:00运行一次...
    })->weekly()->mondays()->at('13:00');
    
    // 工作日的上午8点到下午5点每小时运行...
    $schedule->command('foo')
             ->weekdays()
             ->hourly()
             ->timezone('America/Chicago')
             ->between('8:00', '17:00');
    
    
    1. crontab命令 链接!!
    crontab -e // 编辑
    crontab -l // 查看定时任务列表
    crontab -ri // 删除前给提示 去掉i直接就删了(一定谨慎使用!删完可就找不回来了!!!)
    service crond start //启动服务
    service crond stop //关闭服务
    service crond restart //重启服务
    service crond reload //重新载入配置
    service crond status // 查看crontab服务状态
    

关于crontab脚本不执行的问题

  1. crontab -e 编辑好以后,执行重新载入配置的命令。然后service crond status查看服务状态。如果没报错就没问题。
  2. 但是不报错也有可能不执行。记得去查看日志文件/var/log/cron。有时候也可以查看/var/spool/mail下的邮件,也会有报错信息。
  3. crontab运行要些绝对路径,而系统自动执行任务调度时,除了默认的环境,是不会加载任何其他环境变量的。crontab读取不到环境变量,将要执行的程序改成绝对路径就成功了。
    比如
    */1 * * * * cd /home/www/laravel && /usr/local/php7.3/bin/php artisan schedule:run >> /dev/null 2>&1    正确的配置
    */1 * * * * cd /home/www/laravel && php artisan schedule:run >> /dev/null 2>&1    错误的配置
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用crontab遇到的一点问题,报错/var/spool/cron : Permission denied和bash: /usr/bin/chattr: Permission denied 的相关文章

  • 我对 for 循环中的 javascript let 和 var 感到困惑? [复制]

    这个问题在这里已经有答案了 这是我的循环代码 var username Sam Adarsh Rohit Rajat for var i in username console log username i 它的输出与需要的相同 但我不确定
  • 在 OpenShift(红帽云)上每 5 分钟运行一次 CRON 作业

    我试图每 5 分钟运行一次这个脚本 在 OpenShift 上运行 CRON 作业的唯一方法似乎是使用他们的 CRON 插件 而且CRON插件只允许每分钟 每小时和每天的脚本 通过将脚本放在相应的文件夹中 我尝试每 5 分钟运行一次此脚本
  • Cronjob:找不到命令

    我有一个如下的 cronjob 10 root cd some directory python3 FILE py gt gt Output txt 2 gt 1 如果我从常规命令行运行该命令 它工作正常 但是当从 cronjob 运行时
  • 如何在 Google App Engine 中运行自定义 python 脚本

    对于这么长的详细问题表示歉意 开始 该文件的名称为 send daily report py 并使用一些库 这些库在requirements txt 文件中详细介绍 My app yaml看起来如下 runtime python27 thr
  • crontab:正在运行 python 脚本但不执行操作系统命令

    我有这个 crontab 配置设置和以下脚本 MAILTO email protected cdn cgi l email protection 41 15 usr bin python home atweb Documents openg
  • 从通过 cron 作业运行的 bash 脚本访问 SSH 密钥

    我将这个脚本放在一起 每天更新一个分叉的 Github 存储库文件夹 如果我从提示符中调用它 它运行得很好 但我无法弄清楚如何让它在作为 cron 作业运行时可靠地利用我的 id rsa 这eval ssh agent 正是这样做的尝试 但
  • 使用 var 和使用 function 声明 javascript 对象有什么区别?

    我是一个迷茫的新手 我在教程中读到 您可以像这样创建一个 javascript 对象 function myObject this myProperty a string this myMethod function Method code
  • JMeter - 使用其他 BeanShell 预处理器/后处理器中的变量?

    有没有一种方法可以将变量从一个 BeanShell 预处理器 后处理器引用到另一个 BeanShell 处理器 它们在同一个线程组内 如果我在 HTTP 请求下的 BeanShell 预处理器内创建一个字符串变量 那么我可以在同一 HTTP
  • 使用 logrotate 每小时轮换文件? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我尝试设置位于 tmp hr logs 的日志文件的日志轮转 为了进行设置 我在 Linux 中使用了 logrotate 并且我可以在
  • 在 google app engine python 中设置 cron 作业

    我刚刚开始使用 Google App Engine 所以我仍在学习如何配置所有内容 我编写了一个名为 parsexml py 的脚本 我希望每 10 分钟左右运行一次 该文件位于我的主目录中 与 main py app yaml 等一起 据
  • 如何在AWS EC2服务器中编写cron作业

    我在 AWS EC2 中创建了一个 cron 作业 但它不起作用 我按照以下步骤创建 crontab 第1步 我登录到AWS EC2实例 step 2 crontab e 第三步 插入模式 第4步 我输入了 php var www html
  • 任何无需 GUI/X 会话即可使用 GreaseMonkey 脚本运行 Firefox 的方法

    我需要为第三方网站构建一个小型 监控 抓取工具 这是一个外部网站 其中包含有关我们访问者的统计信息 不幸的是 这个网站很难通过正常的 wget 机制 因为它使用了大量复杂的 JS 其中一部分是由 GWT 生成的 所以我的解决方法是创建一个
  • 向 Spring @Scheduled 提供时区?

    如何为基于 Spring 的系统配置时区 预定 http static springsource org spring docs 3 2 x spring framework reference html scheduling html s
  • Ruby 脚本即服务

    嗯 标题说明了一切 我有一个 ruby 脚本 我想在我的 Linux 机器上作为一项服务 我可以启动和停止 运行 我找到了如何在 Windows 上执行此操作here https stackoverflow com questions 16
  • 运行 php 脚本的 Bash 脚本

    我有一个 php 脚本 我想使用 bash 脚本运行它 所以我可以使用 Cron 每分钟左右运行 php 脚本 据我所知 我需要创建 bash 脚本来处理 php 脚本 然后我才能使用 Cron 工具 计时器 到目前为止 我被告知我需要输入
  • cron 作业或 PHP 调度程序

    我使用 MYSQL 作为我的数据库 PHP 作为我的编程语言 我想运行一个 cron 作业 该作业将运行直到当前系统日期与我的数据库表中名为 PROJECT 的 截止日期 日期 列匹配 一旦日期相同的是 必须运行更新查询 这会将状态 项目表
  • 在 PHP 中使用消息队列与普通 Cron 作业之间的区别

    我们有一个基于 PHP 构建的大型 Web 应用程序 该应用程序允许安排推文和墙贴 并且有从服务器发出的预定电子邮件 我所说的 计划 是指这些 PHP 脚本计划在特定时间运行cron 大约有 7 个 PHP 文件可以完成上述工作 我一直听说
  • 如何在不访问该页面的情况下每分钟自动运行php脚本?

    我正在开发网站 当用户注册我的网站时 该网站会自动向用户发送电子邮件 我在网上搜索过 大多数人说我必须使用cron jobs 现在困扰我的大问题是关于 cron 作业的 我不知道如何编写它 也不知道如何执行它 谁能给我一些关于它的例子吗 预
  • UNIX crontab 中的日期时间格式

    我每 6 小时运行一次 cron 来备份我的数据库 我希望文件名包含按以下格式创建的日期和时间 mysqlbackup 22 5 2013 15 45 sql gz 这是我运行的命令 date date d mysqldump uusern
  • 在 JavaScript 中引用 C# 变量

    我已经阅读了很多线程 但我不明白为什么这不起作用 我正在创建一个将用作导航栏的 SharePoint Web 部件 一切都很顺利 直到我尝试在 JS 代码中引用 C 变量 这是来自 VisualWebPart1UserControl asc

随机推荐

  • latex在ipython jupyter notebook中的使用

    In 2 from IPython display import Latex In 5 数学公式的前后要加上 或 和 Latex r 34 f x 61 3x 43 7 34 Out 5 In 6
  • MATLAB 2018b 帮助页面设置为中文显示

    MATLAB 2018b 帮助页面设置为中文显示 具体步骤如下 xff1a 1 随机点击一个matlab的函数点击 help 2 点击帮助页面的设置按钮 3 按照如下步骤设置即可
  • 图解Java线程死锁的必要条件

    文章目录 What is Deadlock发生死锁要如何解决如何预防死锁参考资料 What is Deadlock In concurrent computing a deadlock is a state in which each me
  • 远程LINUX桌面的好用工具,NoMachine.

    安装及使用都比VNC及XManager要好用 xff0c 网站 https www nomachine com 对应下各自的版本后 xff0c 按照网站的说明进行安装就可以了 xff0c 安装过程不需要其他依赖项 xff01 Linux安装
  • 竞赛经验|2019年电赛B题四旋翼无人机组巡线机器人

    竞赛经验 xff5c 2019年电赛B题四旋翼无人机组巡线机器人 参赛背景和比赛回忆 xff1a 1 院校背景 xff1a 2 规则与现实 xff1a 3 比赛流程 xff1a 备赛建议1 器件选择 xff1a 2 针对学习 xff1a 写
  • C语言实现http post请求和get请求,post请求可以上传图片和文件

    文章目录 1 http协议简介2 http协议分析2 1 http请求2 1 1 请求行2 1 1 1 请求方法2 1 1 2 URL2 1 1 3 协议版本2 1 1 4 请求行总结 2 1 2 请求头部2 1 3 请求数据 2 2 ht
  • 软件改变世界

    随着科技的不断进步 xff0c 软件及其相关技术的发展已经深刻地改变了人类社会的方方面面 从交通运输 医疗卫生到商业服务 教育培训 xff0c 软件技术的应用已经深入到我们的日常生活中 xff0c 对我们的生活方式和生产方式都带来了深刻的影
  • MATLAB 比较好入门书籍有哪些推荐

    https www zhihu com topic 19559252 hot https www zhihu com question 19904418 作者 xff1a 陈村 链接 xff1a https www zhihu com qu
  • pymavlink使用简单教程

    这里写自定义目录标题 pymavlink主要包含的模块连接样例 设置任务样例 更改飞行参数param样例 飞行模式总结 pymavlink Pymavlink是MAVLink协议的python实现 自身包括一个源代码生成器 xff08 ge
  • Python案例003——句子生成器

    目标 xff1a 通过用户提供的内容 xff0c 随机生成唯一的句子 提示 xff1a 以用户输入的名词 代词 形容词等作为输入 xff0c 然后将所有数据添加到句子中 xff0c 并将其组合返回 输出固定的 内容 43 用户输入的内容 c
  • 嵌入式软件工程师面试题

    1 int a 10 61 1 2 3 4 5 6 7 8 9 0 int p 61 amp a 1 则p 6 等于8 2 整数数组清零 xff1a bzero memset 3 siezof 测试变量所占地址的字节数 4 main cha
  • 国内代码仓库-码云

    相信使用github的同学会经常碰到这样的情况 xff0c 当我们从github上面下载稍微大一点的代码的时候就经常下载失败 xff0c 下载网速是非常的感人 国内从github上下载代码非常慢 xff0c 解决办法就是修改host或者vp
  • php对接支付宝Web支付-tp5.1框架

    具体流程 1 获取支付宝相关配置 2 传相关参数请求支付宝网关 订单金额 订单号等 3 支付宝请求回调地址 4 回调地址做相关业务处理 数据库增删改查之类 5 处理完成以后返回success给支付宝服务器 1 首先获取应用id和商户私钥以及
  • TX2+realsense D435i跑VSLAM--001--内核劝退篇

    想要使用tx2连接深度相机realsense D435i xff0c 没想到下载好官方自带SDK后 xff0c 说tx2的版本不满足需求 需要至少L4T28 2 1 xff0c 为什么偏偏就差这么一点版本 xff0c 然后查了查 xff0c
  • PHP对接微信支付--Native tp5框架

    这里实现的功能是 xff1a 网页上点击支付 xff0c 然后调用此方法生成二维码并且返回二维码的图片路径 xff0c 然后扫码支付 xff0c 付款成功进行回调 xff0c 在回调地址进行数据库操作 1 配置微信支付参数 微信支付参数 f
  • 微信支付退款 PHP

    应用场景 当交易发生之后一段时间内 xff0c 由于买家或者卖家的原因需要退款时 xff0c 卖家可以通过退款接口将支付款退还给买家 xff0c 微信支付将在收到退款请求并且验证成功之后 xff0c 按照退款规则将支付款按原路退到买家帐号上
  • windows+本地虚拟机搭建gitlab

    一 安装依赖软件 xff04 yum y install policycoreutils openssh server openssh clients postfix 二 设置postfix开机自启 xff0c 并启动 xff0c post
  • 使用Springboot实现简单的增删改查-超详细

    使用Springboot实现简单的增删改查 超详细 xff08 java小白 仅记录 不喜勿喷 xff09 php想转java 就想写个简单的增删改查 写惯了php 感觉java好复杂 php一般就是定义路由 xff0c 然后去控制器 xf
  • Windows下Virtual box安装centos以及virtual box的增强功能(超详细)

    Windows下Virtual box安装centos以及virtual box的增强功能 xff08 超详细 xff09 1 准备工作1 1 下载Virtual Box1 2 下载centos7镜像 2 安装virtual box3 新建
  • 使用crontab遇到的一点问题,报错/var/spool/cron : Permission denied和bash: /usr/bin/chattr: Permission denied

    问题 xff1a 在Linux服务器上设置crontab定时任务执行laravel任务调度的时候 xff0c crontab e 无法保存 会报错 var spool cron Permission denied 于是百度到是var spo