首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux -将命令的STDOUT发送到RSS源

问Linux -将命令的STDOUT发送到RSS源
EN

Stack Overflow用户
提问于 2012-10-11 03:56:26
回答 2查看 1.3K关注 0票数 2

我希望使用个人RSS Feed进行系统报告,所以我想知道是否有可能创建一个脚本,将其$1发送到RSS feed,ala self_test_command > rss_report.sh。我目前也没有设置RSS提要,那么设置从Linux机器上运行的RSS提要最简单的方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-11 04:21:13

我有一个合适的解决方案,在command line中。在后台使用Perl Template::Toolkit模块(现在不需要学习Perl ):

首先安装perl-template-toolkit包,然后创建模板文件rss.tpl:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>[% title %]</title>
    <description>[% desc %]</description>
  </channel>
  <!-- rest of the RSS -->
</rss>

然后运行以下命令:

代码语言:javascript
复制
tpage --define title=foobar --define desc=description --interpolate rss.tpl

输出为:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>foobar</title>
    <description>description</description>
  </channel>
  <!-- rest of the RSS -->
</rss>

您将找到用于修改here的完整模板

票数 3
EN

Stack Overflow用户

发布于 2013-01-18 18:53:27

还有另一种使用xmlstarlet的解决方案

创建初始rss文件feed.xml:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title>My RSS Feed</title>
    <description>This is my RSS Feed</description>
  </channel>
</rss>

创建一个使用xmlstarlet添加项目的shell脚本:

代码语言:javascript
复制
#!/bin/sh

TITLE="My RSS entry"
LINK="http://example.com/entry4711"
DATE="`date`"
DESC="Good news"
GUID="http://example.com/entry4711" 

xmlstarlet ed -L   -a "//channel" -t elem -n item -v ""  \
     -s "//item[1]" -t elem -n title -v "$TITLE" \
     -s "//item[1]" -t elem -n link -v "$LINK" \
     -s "//item[1]" -t elem -n pubDate -v "$DATE" \
     -s "//item[1]" -t elem -n description -v "$DESC" \
     -s "//item[1]" -t elem -n guid -v "$GUID" \
     -d "//item[position()>10]"  feed.xml ; 

当然,为了有一个通用的解决方案,人们更喜欢从命令行传递参数。

-d命令确保提要不会增长到inifinet,而是最多包含10个项目。

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

https://stackoverflow.com/questions/12827343

复制
相关文章

相似问题

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