【问题标题】:I am trying to send mail which will redirect the content of log files in logfile.txt in same directory.But its failing我正在尝试发送邮件,它将重定向同一目录中 logfile.txt 中日志文件的内容。但它失败了
【发布时间】:2014-01-24 13:52:50
【问题描述】:

请在下面找到我的脚本:-

#!/bin/bash
date=`date +%Y%m%d`

ssh root@server-ip  "ls -lrth /opt/log_$date/"

ssh root@server-ip  "cd /opt/log_$date/; for i in `cat *.log`;do echo $i >> /opt/log_$date/logfile.txt; done;cat  /opt/log_$date/logfile.txt| mail -s \"Apache backup testing\" saranjeet.singh@*****.com"

任何帮助将不胜感激。谢谢

【问题讨论】:

  • 你能写更多关于你想做的事吗?你的很多脚本没有多大意义(第一条 ssh 行没有做任何事情,除非你将它重定向到外面)
  • 在第一行我只是检查它是否显示目录列表。但是在第二行“echo $i”不会将日志文件的内容重定向到logfile.txt。这是主要问题。这就是它向我发送空邮件的原因。

标签: linux bash ssh


【解决方案1】:

因为您使用双引号,所以您的反引号会在 SSH 命令执行之前在本地主机上进行评估。

不过,在这种情况下,更好的解决方法是完全避免它们;

ssh root@server-ip  "cat /opt/log_$date/*.log |
     tee /opt/log_$date/logfile.txt" |
mail -s ...

【讨论】:

  • 我重构了mail -s 以在本地主机上运行,​​但也许您有理由想在远程主机上运行它?还原应该是微不足道的。
猜你喜欢
  • 2011-08-25
  • 2020-06-18
  • 2010-10-28
  • 2016-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-17
相关资源
最近更新 更多