为了账号安全,请及时绑定邮箱和手机立即绑定

是否可以记录整个脚本?

是否可以记录整个脚本?

富国沪深 2021-04-05 13:14:03
我已经部署了一个接收后钩子脚本,我想将整个输出日志作为日期从一个块中获取。我尝试了一种方法,但是它需要逐行记录日志,这意味着我必须将该命令放在每一行上才能获取日志。有没有办法从日期开始一次获取整个脚本日志?脚本文件如下所示:#!/bin/bashany_command | ts '[%F %T]' >> /home/Man/Man_log.logsecond_command | ts '[%F %T]' >> /home/Man/Man_log.logthird_command | ts '[%F %T]' >> /home/Man/Man_log.log看到我必须| ts '[%F %T]' >> /home/Man/Man_log.log对每条命令都添加此行以获取日志。而且我有90条线,所以这不是一个完美的方法。我需要一种有效的方法,就像脚本中只有一行将整个脚本的输出作为日志并将其存储到以日期开头的另一个Man_log.log文件一样。我想要的与此类似。#!/bin/bashts '[%F %T]' >> /home/Man/Man_log.log #a command which can store logs of every command below this to a separate file starting with dateany_commandsecond_commandthird_command
查看完整描述

2 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

我已经部署了一个接收后钩子脚本,我想将整个输出日志作为日期从一个块中获取。我尝试了一种方法,但是它需要逐行记录日志,这意味着我必须将该命令放在每一行上才能获取日志。有没有办法从日期开始一次获取整个脚本日志?


脚本文件如下所示:


#!/bin/bash

any_command | ts '[%F %T]' >> /home/Man/Man_log.log

second_command | ts '[%F %T]' >> /home/Man/Man_log.log

third_command | ts '[%F %T]' >> /home/Man/Man_log.log

看到我必须| ts '[%F %T]' >> /home/Man/Man_log.log对每条命令都添加此行以获取日志。而且我有90条线,所以这不是一个完美的方法。我需要一种有效的方法,就像脚本中只有一行将整个脚本的输出作为日志并将其存储到以日期开头的另一个Man_log.log文件一样。


我想要的与此类似。


#!/bin/bash

ts '[%F %T]' >> /home/Man/Man_log.log #a command which can store logs of every command below this to a separate file starting with date

any_command

second_command

third_command可能最简单的方法是修改脚本以每次都打印出日期:


#!/bin/sh


date -u +"%Y-%m-%dT%H:%M:%SZ"


# your commands below

...

如果您无法修改脚本,则可以对命令进行分组,例如:


(date && anycommand) >> out.log

在括号中对(命令列表)进行分组会使它们像单个单元一样被执行。“子壳”


查看完整回答
反对 回复 2021-04-16
  • 2 回答
  • 0 关注
  • 287 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信