运维经验分享(三)-- 解决Ubuntu下crontab不能正确执行脚本的问题
2023-09-14 09:01:02 时间
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://dgd2010.blog.51cto.com/1539422/1676490
系统优化脚本支持Ubuntu和CentOS 安装系统后经常有一些基础的系统优化安装,本人比较懒,写了一个脚本,可以后期加入其他优化方面。 仓库地址:https://github.com/cby-chen/OS 后续可能会继续更新脚本
Ubuntu 开机自动执行--脚本或命令(基于rc.local) 开发过程中,有时需要一些sh脚本、python脚本、命令等在开机的时候自动执行;这种方法比较适合于ubuntu16及之前的版本;毕竟像ubunutu18本来是不带rc.local脚本的。
====================================分割线======================================
前几天写了一个重启ChatterServer的脚本,并设置了一个计划任务,每天两点执行,通过检查ChatterServer进程的pid发现,隔天的pid还是相同的,也就是说计划任务并没有成功执行。
最初的分析以为crontab语法有问题,但经过再三检查后没有发现问题,在CentOS上测试没有问题,因此查看了一下还是Ubuntu与CentOS不一样的缘故,原因还是出在对Ubuntu不熟上,默认的crontab计划任务的shell是/bin/sh,而/bin/sh是一个链接文件,实质指向的是/bin/dash(如下图所示),由于/bin/dash在某些语法上与/bin/bash有很大的不同,如果是用/bin/dash执行一些虽然以#!/bin/bash开头的脚本也难免出错,因此需要重新指定这个sh。
但为了不影响整个crontab,我把自定义的crontab指定为bash去执行,如下图所示:
这样在chatter.sh脚本中与dash不兼容的行就能正确执行了。
--end--
====================================分割线======================================
运维经验分享作为一个专题,目前共7篇文章
系统优化脚本支持Ubuntu和CentOS 安装系统后经常有一些基础的系统优化安装,本人比较懒,写了一个脚本,可以后期加入其他优化方面。 仓库地址:https://github.com/cby-chen/OS 后续可能会继续更新脚本
Ubuntu 开机自动执行--脚本或命令(基于rc.local) 开发过程中,有时需要一些sh脚本、python脚本、命令等在开机的时候自动执行;这种方法比较适合于ubuntu16及之前的版本;毕竟像ubunutu18本来是不带rc.local脚本的。
相关文章
- ubuntu降低内核版本后无网络_Ubuntu换内核为旧版
- Ubuntu卸载软件:3种卸载方式
- Ubuntu修改用户名和密码后无法登录_ubuntu默认用户名
- 在Ubuntu中安装交叉编译器_为什么一直安装中
- 【错误记录】Ubuntu 安装软件报错 ( 下列软件包有未满足的依赖关系:E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。 )
- 环境搭建Ubuntu中快速搭建MySQL环境(ubuntu的mysql)
- Ubuntu安装MySQL数据库的指南(ubuntu装mysql)
- 在ubuntu中安装filezilla
- Ubuntu 15.10 安装 Gnome 图标主题 Shadow 1.4
- 如何在Ubuntu 18.04 LTS上安装和配置Mantis Bug Tracker
- Ubuntu与Linux:开源技术的双发动机(ubuntu与linux)
- 之一ubuntu开启Ubuntu之门:探索Linux分支的新世界(linux的分支)
- 如何在 Ubuntu 上为用户授予和移除 sudo 权限
- Ubuntu 19.04 已经到期!现有用户必须升级到 Ubuntu 19.10
- 如何在 Ubuntu 中更改默认终端
- Canonical 并不指望别的发行版也从 Ubuntu 商店下载 Snap 软件包
- 如何在 Ubuntu 上安装 MySQL 数据库?(ubuntu安装mysql)
- Ubuntu轻松卸载MySQL,教你步骤全掌握(ubuntu卸载mysql)
- 安装Ubuntu系统,轻松使用Oracle(ubuntu安装oracle)
- Ubuntu与Linux:共同打造更好的世界(ubuntu和linux)
- Ubuntu 上搭建 Redis 存储系统(ubuntu中redis)