51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Shell定时脚本转发RSS

最近换上了Follow,但是Xing同学的博客不能通过境外IP访问,导致Follow订阅不了。综上所述,我选择做一个转发。


实际上非常简单。

  1. 写脚本

得益于GPT4.0的帮助和一点点点点Linux基础,我们可以得到以下代码。我将其存放在目录下的update_rss.sh文件里。经测试,可以抓取rss.xml和/feed。
记得替换文件目录成你自己的!

#!/bin/bash

RSS源
====



RSS_URL="目标RSS地址"


本地文件路径
======



LOCAL_PATH="/文件目录/rss.xml"


替换文件目录成你自己的!
============



使用curl下载文件,添加重试和错误输出日志
======================



curl -L --retry 3 -o "$LOCAL_PATH" "$RSS_URL" 2\>\> /文件目录/rss_update.log


检查下载是否成功
========


`if [ $? -eq 0 ]; then
echo "$(date): RSS feed updated successfully." >> /文件目录/rss_update.log
else
echo "$(date): Failed to update RSS feed." >> /文件目录/rss_update.log
fi`

每当这个脚本被执行,服务器就会向RSS源Curl得到RSS数据,并写入到本地目录的rss.xml里,只需要请求服务器转发后的rss.xml即可。每次请求RSS数据的大小,时间,是否成功等信息都会被存到log文件里。
Log


  1. 定时脚本

在目标目录下执行这个:

crontab -e

可能会让你选择目标编辑器,这里我输入1并Enter,选择了Nano。

Select an editor.  To change later, run 'select-editor'.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/vim.tiny
  4. /bin/ed
`Choose 1-4 [1]: `

接下来填入以下内容:(下面的是实例)

0 0,1,11,12,18 * * * /文件目录/update_rss.sh

第一个 0 表示每个小时的第0分钟。
0,1,11,12,18 表示在每天的 0点、1点、11点、12点和18点运行。可以自己更改。
3个"*"号分别表示每一天、每个月、每周的任意天。

  1. 其他事项

记得让目标RSS源放行你的服务器IP,以及,最好申请授权并征得博主同意。

现在在Follow里可以搜到"往日信笺"了,转发出去的订阅地址在https://media.duckxu.com/xingmail_cn.xml

赞(0)
未经允许不得转载:工具盒子 » Shell定时脚本转发RSS