Linux – 将命令的STDOUT发送到RSS源

我正在寻找使用个人的RSS饲料的系统报告,所以我想知道是否有可能创build一个脚本,发送其1美元的RSS饲料,ala self_test_command > rss_report.sh 。 我现在还没有设置RSS源,那么设置从Linux机器运行的RSS源最简单的方法是什么?

Solutions Collecting From Web of "Linux – 将命令的STDOUT发送到RSS源"

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

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

 <?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> 

并运行命令:

 tpage --define title=foobar --define desc=description --interpolate rss.tpl 

输出是:

 <?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> 

你会在这里找到一个完整的模板来修改

还有另外一个使用xmlstarlet的解决方案:

创建一个初始rss提要文件feed.xml:

 <?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脚本:

 #!/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命令确保feed不会在inifinet中增长,但最多只有10个项目。