首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将默认的shell更改为/bin/bash的at作业调度程序,如在CRON中

将默认的shell更改为/bin/bash的at作业调度程序,如在CRON中
EN

Unix & Linux用户
提问于 2012-01-31 14:37:04
回答 2查看 1.2K关注 0票数 2

我最近从2>&1 >>转到了&>>

是否有一种使用/bin/bash作为shell的方法?默认情况下,它使用/bin/sh,手册页没有指示如何使用其他任何内容。即使在crontab中,也可以使用SHELL=/bin/bash

造成我的主要问题是:

代码语言:javascript
复制
echo "do-smth.sh &>> logfile" | at now + 8 hours

他们没有将stdout和stderr附加到我的日志文件中,而是完全迷路了,甚至连电子邮件都没有。

这个解决方法没有起作用,理由是意外的重定向:

代码语言:javascript
复制
echo "bash <<< \"do-smth.sh &>> logfile\"" | at now + 8 hours

我使用Linux,Ubuntu11.10风格,这不重要。

EN

回答 2

Unix & Linux用户

发布于 2012-02-01 16:27:56

您的问题是,您的命令的编写方式是sh试图处理下面的字符串重定向,并且(在Ubuntu中链接到dash,而不是bash )它没有<<<操作符。你可能想要这个:

代码语言:javascript
复制
echo 'bash -c "do-smth.sh &>>logfile"' | at now + 8 hours
票数 3
EN

Unix & Linux用户

发布于 2018-01-25 13:33:10

为什么不在cron运行的脚本顶部使用#!/bin/bash呢?如果使用将要使用的脚本创建目录,则可以将其置于源代码管理之下,如果无法访问此硬盘驱动器,则更容易恢复。您还可以用木偶、厨师或ansible安装这些脚本,只需在crontab中添加单行条目就可以运行这些脚本。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/30573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档