Linux crontab下关于使用date命令和sudo命令的坑

想要在root 的crontab里面加一些任务计划,希望以www用户运行命令,并且将输出重定向到某处以当时时间命名的日志文件,大致如下

/usr/bin/sudo -u www /usr/local/php/bin/php /www/open/www.php  &> /var/log/xxx_cron_log/www_$(date +"%Y%m%d_%H:%M").log

此处有两个坑:

1、习惯上的`date +"%Y%m%d_%H:%M"` 和 $(date +"%Y%m%d_%H:%M")在crontab下不起作用,需采用如下形式 `date +"\%Y\%m\%d_\%H:\%M"` 和 $(date +"\%Y\%m\%d_\%H:\%M")

2、直接在crontab里以sudo执行命令无效,会提示 sudo: sorry, you must have a tty to run sudo .需要修改/etc/sudoers,执行visudo或者vim /etc/sudoers 将"Defaults  requiretty"这一行注释掉。因为sudo默认需要tty终端,而crontab里的命令实际是以无tty形式执行的。注释掉"Defaults  requiretty"即允许以无终端方式执行sudo

但是,这里关于安全性方面有一点需要注意

关于该配置项,说明如下Disable "ssh hostname sudo <cmd>", because it will show the password in clear.You have to run "ssh -t hostname sudo <cmd>".

该配置的作用是禁止执行"ssh hostname sudo <cmd>",因为这种方式会将sudo密码以明文显示,你可以运行"ssh -t hostname sudo <cmd>"来替代。开启的情况下,"ssh hostname sudo <cmd>"无法执行成功,关闭了之后,就没有这一层的检查了。

联想:想到top命令也是需要在终端下执行的,所以直接在shell脚本里调用top命令式无效的

转载来源:https://blog.csdn.net/kai404/article/details/52169122

Linux crontab下关于使用date命令和sudo命令的坑相关推荐

  1. linux系统下常用或有用的系统级命令

    本文章记录我在linux系统下常用或有用的系统级命令,包括软硬件查看.修改命令,有CPU.内存.硬盘.网络.系统管理等命令.但本文不打算介绍生僻命令,也不介绍各个linux发行版下的特有命令,且以后会 ...

  2. Linux的su命令,sudo命令和限制root远程登录

    3.7 su命令: su命令是用来切换用户的,例如我要从root用户切换到user2用户:   这个 - 选项是彻底切换用户的意思,如果不加 - 选项也可以,但是切换得不彻底,例如当前的家目录还是ro ...

  3. linux sudo yum命令详解,每天一个Linux命令之sudo命令详解

    Linux系统的sudo命令是切换用户身份的命令.下面由学习啦小编为大家整理了每天一个Linux命令之sudo命令详解,希望对大家有帮助! 每天一个Linux命令之sudo命令详解 sudo命令用来以 ...

  4. linux 压缩根目录文件,Linux操作系统下如何压缩文件? zip压缩命令使用

    Linux zip命令用于压缩文件. zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有".zip"扩展名的压缩文件. 在linux操作系统中,使用zip命令进行文件压缩时 ...

  5. Linux系统下设置redis的密码 与 redis 命令

    最近在linux服务器上需要安装redis,来存放数据,增加用户访问数据的速度,由于是第一次安装,于是在百度上搜了一篇文章,按照这篇博客,顺利安装好了,因此将博主的文章拷过来记录一下,方便以后使用,也 ...

  6. 【VP9】libvpx在Windows和Linux平台下的编译和vp9编解码器的命令行参数

    =================================================================== 参考:https://www.cnblogs.com/endv/ ...

  7. Linux下如何配置普通用户的sudo命令权限?

    背景 在Linux系统操作时,通常不会直接采用root用户.但当某些命令需要root权限执行时,往往会通过sudo命令提升当前用户的执行权限来完成. 如果普通用户并未进行配置相应的配置,则在使用sud ...

  8. 【已阅】Linux下的用户分类与su/sudo 命令,Linux下的文件类型/用户文件权限身份/文件权限属性/权限与文件权限/ls-l文件属性详解

    Tips 下载就是把我们的文件拷贝到系统的某个特定路径之下,普通用户是不允许你往系统里面去拷的. Linux下的用户分类 root用户,管理员级别的用户身份,他的话基本上不受权限的约束. 普通用户,普 ...

  9. linux环境下如何部署war包及常用命令

    linux环境下部署war包需要用到的一些命令 linux环境下部署war包 测试工具 常用的一些命令 对于使用navicat或者workbench进行脚本测试的一些注意事项执行 linux环境下部署 ...

最新文章

  1. python ‘float‘object is not iterable
  2. 前端开发工程师做些什么?
  3. 年终总结 | 2021红包点赞?(文末有刺激的福利哦)
  4. RabbitMQ—队列迁移插件shovel的使用
  5. ssh免密登录(普通用户和root用户)
  6. php进程SIGBUS,SIGSEGV错误
  7. Java网络编程从入门到精通(21):HTTP消息的格式
  8. 50 MM配置-库存管理和实际库存-自动建立库存地点
  9. win10 uwp 改变鼠标
  10. python文字转图片_技能:如何使用Python将文本转为图片
  11. Makefile:Makefile中的调试打印方法
  12. 在文件保存中 os.getcwd() os.listdir() os.makedirs() os.mkdir() xx.join() ... 等函数 的使用介绍...
  13. 保龄球计分c语言程序,求C语言代码解释(保龄球记分程序)
  14. SSM洗衣店管理系统
  15. elasticsearch-analysis-ik中文分词插件安装及配置Ik自定义词典+拼音分词
  16. ffmpeg 转换flv压缩大小_ffmpeg 转换 mp4 成 flv
  17. IT忍者神龟之小程序最全的微信小程序项目实例
  18. OpenStreetMap数据Qt5分析实战(基于2020数据)
  19. Python复数属性和方法操作实例
  20. SMETA认证辅导,审核结果可以得到所有SEDEX会员的认可并被他们共享

热门文章

  1. C# WinForm中的Label换行方法
  2. vs.php中使用apache或IIS7进行外部调试
  3. Bootstrap 3 响应式上传图片,时间拾取器和表单认证 Fileinput, Date/Time Pickr, Validator...
  4. 【必备】史上最全的浏览器 CSS JS Hack 手册
  5. Ubuntu中升级Firefox及flash player
  6. 在Ubuntu 13.10 下安装支持SSL的Apache
  7. TSVD截断奇异值分解
  8. K均值聚类关于初始聚类中心的探讨(matlab程序)
  9. Vim设置支持鼠标,光标定位,滚轮上下移动
  10. Leetcode算法题(C语言)2