这是 shush 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
shush - 运行命令并可选择通过邮件报告其输出
概要
嘘 [ -h | -V ]
嘘 [ -c DIR [ -S | -s 设施 [ -vfmk ] 姓名 [ ID ]
嘘 [ -c DIR [ -H 至 [ -R 至 [ -T 至 ] -C 姓名 [ 标准输出 [ 斯特德 ]]
嘘 [ -i | -u | -r [ -c DIR ]
商品描述
嘘 运行命令并可选择通过邮件报告其输出。 这是一个有用的包装器
围绕 cron 工作。 默认情况下, 嘘 运行时不会产生任何输出
一切(如果有的话)都通过邮件报告。 但是,配置以及关键
错误将在标准错误和(可选)系统日志中报告。 因为
中断 嘘 有可怕的后果,包括可能损失任何输出
命令,以下常用信号被忽略 嘘: SIGHUP、SIGINT、SIGQUIT
和SIGTERM。 如果真的想杀死一个正在运行的实例 嘘 而不是杀死
正在运行的托管命令 SIGKILL 可能会被使用,并应作为提醒
这种行为通常是不恰当的。
对于要使用的命令运行 嘘, 一个配置文件 姓名 必须存在于
配置目录($HOME/.嘘 默认情况下)。 该文件定义了命令的方式
当通过邮件发送报告时也应该运行。 有关可用的详细信息
配置参数见 配置 以下部分。
可能存在两个额外的配置文件: 名称.标准输出 和 名称.stderr (默认情况下)。
这些文件用于查看标准输出和标准错误(分别)
命令产生的。 有关如何使用这些的详细信息,请参阅 指挥 OUTPUT 部分
联络一位教师
当。。。的时候 -C 选项被指定, 嘘 只会加载配置,可选
分析来自指定文件的标准输出和标准错误,最后
如果需要,生成样本报告。 这也可用于生成报告,如果 嘘
运行命令时未能正确终止。 (标准输出和错误来自
该命令通常位于 /tmp 下的文件中。)
嘘 能够管理 crontab中(5) 条目基于用户定义的配置。
这可以通过两种方式之一来完成。 如果文件名为“始你"存在于
配置目录,然后读取调度信息。 每行应
包含一个条目,其中包含由空格分隔的三个字段。 这些字段是
(按顺序)条目适用的主机名或字符“*”以包括所有
主机,配置 姓名, 最后是同样格式的调度信息
正如所使用的那样 始你 参数(见下文)。 指定一个 ID, 使用 姓名:ID 作为
第二场。 如果没有名为“的文件始你“, 然后 嘘 检查配置
配置文件的目录并将它们添加到当前用户的 crontab中(5) 归档为
由包含的指定 始你 参数(见下文)。 名称开头的文件
字符“#”或以字符“~”结尾的字符将被忽略。
配置
-h 显示简短的帮助消息。
-V 显示版本信息。 前缀为 -v 显示编译时默认值。
-c DIR 指定存储配置的目录。
-s 设施
定义用于记录的系统日志工具。
-S 禁用系统日志记录。
-v 将信息日志消息复制到标准输出。
-f 快速模式:任意配置 随机延迟 被忽略。
-m 实时监控并显示命令的标准输出和错误。
-k 保留命令的输出日志文件,而不是在完成后将其删除。
-C 不运行任何命令检查配置。
-H 至 向指定的收件人发送示例 HTML 报告。
-R 至 将样本丰富的报告发送给指定的收件人。
-T 至 向指定的收件人发送示例文本报告。
-i 使用 VHDL 语言编写 crontab中(1) 安装一个新的 crontab中(5) 当前用户的文件。 用户
不能已经有 crontab中(5) 文件中。
-u 使用 VHDL 语言编写 crontab中(1) 更新当前用户的 crontab中(5) 文件,必须已经
存在。
-r 删除添加的任何条目 -u 从当前用户的选项 crontab中(5).
配置
嘘 配置文件由主要部分、报告部分和参数组成。
主要部分定义了全局参数以及报告的默认值。 每份报告
部分以括号内的报告名称开头。 以开头的行
字符“#”被忽略。 参数应该只指定一次。 如果指定
多次,除非另有说明,否则除最后一次之外的所有内容都将被忽略。
使用以下语法定义参数:
姓名=折扣值
要么:
姓名@主机=折扣值
要么:
姓名%ID=折扣值
或者最后:
姓名@主机%ID=折扣值
第二和第四种格式将被忽略,除非 嘘 正在指定的运行
主机名。 第三和第四种格式允许定义单个的多个实例
配置文件。 这样的配置文件需要一个实例 ID 须在
命令运行。 如果出现以下情况,任何使用第三或第四格式的配置行都将被忽略
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 ID 在该行发现与实例不匹配 ID 曾经运行 嘘.
以下参数可能出现在主要部分:
命令
要运行的实际命令。 嘘 在运行之前设置两个环境变量
命令: 嘘_名字 被设置为 姓名和 嘘_ID 被设置为 ID.
配置 这默认为主配置文件的完整路径。 另外两个
配置文件名通过附加“.stdout”和“.stderr”获得
此参数值的后缀。
锁 如果设置,此参数指示 嘘 在运行之前获取锁定文件
命令, 并定义了在以下情况下要采取的行动 锁文件 被另一个人持有
过程。 格式是逗号分隔的操作列表。 有效的操作是:
持续时间(在此期间 嘘 应该简单地等待并继续尝试获得
锁文件),字符串“abort”(表示 嘘 应该立即终止
如果 锁文件 已经存在),字符串“ignore”(表示 嘘 应该
忽略现有的 锁文件),字符串“loop”(标记从哪里重新开始
当所有操作都已执行时)和字符串“notify=”后跟邮件
通知邮件应发送到的地址。 动作在
提供它们的顺序,以及 嘘 将永远等待试图获得 锁文件
一旦所有操作都已执行,除非字符串“loop”是已定义的其中之一
行动。 持续时间可以以 w(eeks)、d(ays)、h(ours)、
m(分钟)或 s(秒)。 如果未指定单位,则假定为分钟。
锁文件
默认情况下, 嘘 将使用位于同一目录中的文件
配置文件,并以配置和主机名命名。 一个替补
可以使用此参数指定文件名。
锁消息
如果设置,此字符串将用作锁定通知邮件消息的主题。
默认值为“[%u@%h] **PENDING** %N [%t]”。 见 邮箱地址 分科 对于部分
格式的详细信息。
径 嘘 不修改环境,除了设置 PATH 变量如果 径
参数设置。
随机延迟
如果设置了这个参数, 嘘 将等待指定的时间之前
除非用 -f. 有效的时间单位是:s(秒),
m(inutes), h(ours), d(ays), w(eeks)。 如果未指定单位,则假定为
分钟。
始你
这定义了何时将此命令作为 cron 作业运行,在 crontab中(5)兼容
格式。 可以使用字符“;”指定多个条目作为分隔符。
以字符“#”为前缀的条目将被跳过。 这个参数不是
直接使用 嘘 运行命令,但由 -i 和 -u 选项。
发邮件
这可用于覆盖用于发送邮件的命令。
壳 默认情况下,Bourne shell sh(1) 用于运行 命令, 允许任何外壳
要使用的语法。 可以使用此参数定义备用外壳。
陈述者
这定义了状态的目录 嘘 已保存并默认为
配置所在的“.state”目录。 产生错误
如果目录不存在,除非未设置此选项。 设置这个
空字符串的选项将阻止 嘘 从保存其状态。 粉碎(1)
使用这些状态文件来报告正在运行的实例 嘘 以及之前的
运行。
系统日志 这个参数是 仅由 由 -i 和 -u 选项并且没有其他影响
嘘. 它允许覆盖用于日志记录和
在编译时定义。 如果留空,这将禁止使用 syslog。
超时
此参数允许控制多长时间 命令 可能会运行。 它应该是一个
逗号分隔的操作列表。 有效的操作是: 持续时间(在此期间
嘘 应该简单地等待 命令 终止),一个信号(“SIGNAME”
或“-SIGNUMBER”)应该发送到 命令的进程组,一个信号
(“=SIGNAME”或“=SIGNUMBER”)应该发送到 壳 用于产卵
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 命令, 字符串“循环”(标记所有操作时重新开始的位置
已被执行)和字符串“notify=”后跟邮件地址,
应发送通知邮件。 动作按照它们的顺序执行
提供,和 嘘 将永远等待,如果 命令 仍在运行一次
除非字符串“loop”是已定义的动作之一,否则已执行动作。
持续时间可以以 w(eeks)、d(ays)、h(ours)、m(inutes) 或
s(秒)。 如果未指定单位,则假定为分钟。
超时消息
如果设置,此字符串将用作超时通知邮件的主题
消息。 默认值为“[%u@%h] **TIMEOUT** %N [%t]”。 见 邮箱地址 分科
有关格式的详细信息部分。
以下参数可能出现在配置中的任何位置。 如果在
主要部分,它们定义了适用于任何报告的默认设置
未定义相同的参数。
至, cc, BCC
将邮件报告发送到何处。
主题
邮件报告的主题。 见 邮箱地址 分科 有关详细信息的部分
格式。
头 附加邮件标头。 注意这个参数可能会重复指定
多个标题。 但是,只有来自报告(如果指定)或来自
主要部分将用于给定的报告。
主机前缀
默认情况下,指定的主题以括号中的主机名作为前缀。
此参数允许自定义此前缀。 正整数表示
应显示多少个完全限定主机名的组成部分。 一个负
整数表示完全限定主机名的尾随部分
应该修剪。 整数零表示应省略前缀。
如果“主题" 包含任何 "%" 字符。
用户前缀
默认情况下,指定的主题以括号中的用户名作为前缀。
此参数允许禁用此前缀。 任何非零值表示
应该显示用户名,而零会导致前缀被省略。 这个
如果“主题" 包含任何 "%" 字符。
产量 (之前 ”标准错误")
本篇 定义 形成一种 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 命令的 产量 和 错误 旨在 捕获 和
报道 至 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 用户: "先犯错", “混合”, “首先”。 在规划婴儿食品行业的工艺要求时,安全性和可靠性是工艺设计中最重要的方面。 运用 “混合”, 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。
名称.stderr 配置 文件 is 忽略了。 在规划婴儿食品行业的工艺要求时,安全性和可靠性是工艺设计中最重要的方面。 运用 “先犯错” or "第一",
个人 报告 五月 使用 一种 of 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 以下 二 额外 选项 “唯独”
和 “错误”。
格式 发送输出的邮件消息 命令 可能会以三种不同的方式发送
格式:“text”(默认)、“enriched”文本或“html”。
大小限制
默认情况下,整个输出 命令 以邮件报告的形式发送。 这个
参数可用于限制报告中包含的输出的大小。 笔记
发送的邮件总大小会更大,因为此限制对
邮件标题。 可以以 m、k、b、c(MB、KB、字节)为单位指定大小。
如果未指定单位,则假定为 KB。 零极限表示
输出不应被截断。
if 只有在没有的情况下才会发送报告 if 条件已指定或如果指定 if
条件为真。 条件语法允许使用通常的逻辑运算符
("||", "&&", "!"), 比较运算符 ("==", "!=", "<", "<=", ">", ">=") 和
基本算术运算符(“+”、“-”)。 除了由定义的计数器
配置(见 指挥 OUTPUT 以下部分),以下变量可能
使用:
$退出 如果命令正常终止,这是它的退出代码。 否则就是
负数,表示导致命令执行的信号编号
终止(例如 -1 表示信号编号 1 导致命令
终止)。
$大小 输出大小(以字节为单位),与“$outsize + $errsize”相同
$特大号
标准输出的大小(以字节为单位)
$错误大小
标准错误的大小(以字节为单位)
$行 输出行数
$大纲
标准输出行数
$错误线
标准错误行数
$运行时
命令 运行时间(秒)
$utime 用户使用的时间 命令
$时间 使用的系统时间 命令
$tty 1如果 嘘 从终端运行(例如交互),否则为 0。
邮箱地址 必修科
该“锁消息“”超时消息“和”主题" 参数可能包含以下标记
扩展如下:
%% 人物
%h 主机名
%
或%- ”
A 部分的 主机名: A 积极 数字 表示 形成一种 许多 组件 of 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。
充分 合格 主机 至 保持; a 负 数字 表示 形成一种 许多
尾随 组件 of 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 充分 合格 主机 至 修剪。
%i 实例 ID
%n 配置 姓名
%N 配置 姓名 和实例 ID
%r 报告名称
%t 经过的时间。
%u 用户名。
%U 用户标识。
如果在“主题" 参数,然后
"主机前缀“和”用户前缀" 参数被忽略。
指挥 OUTPUT
之后 命令 终止, 嘘 将使用的内容 名称.标准输出 和
名称.stderr 文件(如果存在)以查看由 命令.
这些文件遵循简单的格式。 每行由一个字符组成(
计数器名称)后跟正则表达式。
所有计数器都初始化为 0(零)。 每行输出都与这些匹配
正则表达式,直到找到匹配项。 如果找到匹配项,则关联的计数器
加一。 然后这些计数器可以用作主要配置的一部分,
在一个“if" 配置参数,允许决定发送邮件报告
基于某些正则表达式匹配的次数。
最后,正则表达式可以定义子表达式,这些子表达式将以粗体呈现
邮件报告。
以字符“#”开头的行被视为注释并被忽略。 经过
默认情况下,使用标准正则表达式,除非第一行是“#pcre”,其中
使用与 Perl 兼容的正则表达式。
环境 变数
主页 如果 -c 未使用选项, 嘘 将在
$HOME/.嘘.
SHUSH_SENDMAIL
如果定义,这应该指向 发邮件(1) 二进制。 此变量覆盖
该“发邮件" 配置设置,应谨慎使用。
TMPDIR 创建临时文件的目录。
例
以下配置每天9:00运行“shush -c /etc/shush -u”,更新用户
(根)crontab:
命令=shush -c /etc/shush -u
时间表=0 9 * * *
lock=notify=root 根日志,中止
超时=5m,循环,通知=根根日志,15m
标准错误=第一
格式=文本
主题=Crontab 每日更新
[日志]
to=根日志
[读者]
if=$exit != 0 || $大纲 != 1 || $错误大小> 0 || 你
到=根
格式=丰富
标准输出的相关配置是:
Oshush:crontab 已更新\.$
你^.+$
对于标准错误:
你^(.+)$
运行命令时将设置锁定,如果出现以下情况,邮件将发送到“root”和“root-logs”
当锁被另一个进程持有时 嘘 开始,在这种情况下 嘘 将中止。 一种
如果“shush -c /etc/shush -u”运行更多,邮件也将发送到“root”和“root-logs”
超过 5 分钟,并且在前 15 分钟之后每 5 分钟。
完成后,输出将始终发送到“root-logs”。 此外,输出
如果条件 "$exit != 0 || $outlines != 1 || $errsize > 0 ||
U" 为真。要使此条件为真,以下条件之一必须为真:出口
代码非零,命令标准输出不是一行,有输出
标准错误或最后,计数器“U”不为零。 对于计数器“U”是非
零,除了“shush: crontab”这一行之外,标准输出上必须有输出
已更新。”。最后,将显示在标准错误上产生的任何输出行
在发送到“root”的邮件中以粗体显示。
使用 onworks.net 服务在线使用 shush
