干点正事儿~coreelec下载数据文件并定时上传服务器

最近一直在折腾电视盒子,尝试把电视盒子刷成一个linux小系统,小米3c是博主用得最多的设备,刷了 7ji 大佬的coreelec 1.4 版本,虽然3c性能有限,但胜在运行稳定,外形也美观大方,主要是博主自打买回来一直没用,看着真跟新的没差。

所以当新购的阿里云服务器遇到了ip问题,无法直接从某些外部服务器直接获取数据的时候,第一时间考虑的就是利用3c作为一个跳板,下载需要的数据到本地,然后通过ssh定时上传到阿里云。因为coreelec的python库不是特别全,尝试带密码连接服务器总是出错,一时半会博主也搞不太清楚coreelec系统下python完善库的方式,所以最终选择了使用密钥连接服务器。

在coreelec上生成密钥

首先在coreelec上生成密钥,利用cat命令输出公钥后,复制并粘贴到服务器(博主这里是阿里云服务器)的~/.ssh/authorized_keys 文件内:

ssh-keygen -t rsa -f /storage/.ssh/id_rsa -N ""
cat /storage/.ssh/id_rsa.pub
# 复制输出内容到服务器的 ~/.ssh/authorized_keys

python脚本

出问题的是小鸟数据的nhk音频页面,原有的逻辑是直接从服务器读取外部xml文件,解析成json文件,然后由php组装成页面,现在因为ip问题,只能由小米盒子3c代劳,然后上传到服务器了。以下是python版本的下载与上传程序,python版本为2.7:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import urllib2
import subprocess
import os

def download_and_upload():

    xml_url = 'https://www.nhk.or.jp/s-media/news/podcast/list/v1/all.xml'
    local_file = '/tmp/nhk_radio.xml'

    #server info
    remote_user: 'your_username',      # 修改为你的用户名
    remote_host: 'your_server.com',    # 修改为你的服务器
    remote_path: '/path/to/nhk_radio.xml'  # 修改为服务器路径
    
    try:
        #dwonload
        print("downloading...")
        response = urllib2.urlopen(xml_url, timeout=30)
        with open(local_file, 'w') as f:
            f.write(response.read())
        print("download complete...")
        
        #update
        remote_target = '{}@{}:{}'.format(remote_user, remote_host, remote_path)
        scp_command = 'scp {} {}'.format(local_file, remote_target)
        
        print("updating...")
        result = subprocess.call(scp_command, shell=True)
        
        # 清理临时文件
        if os.path.exists(local_file):
            os.remove(local_file)
        
        if result == 0:
            print("文件上传成功!")
            return True
        else:
            print("上传失败! 请检查SSH密钥设置")
            return False
            
    except Exception as e:
        print("错误: {}".format(str(e)))
        return False

if __name__ == "__main__":
    download_and_upload()

coreelec 定时任务

编辑定时任务:

# 编辑crontab
crontab -e

博主准备一小时更新一次,所以在定时任务里添加如下内容:

0 * * * * /usr/bin/python /storage/webdata/getNhkRadio.py >> /storage/logs/nhk_radio.log 2>&1

如果有不同的间隔需求,可以百度搜索或者deepseek询问一下AI。需要注意的是,这里如果选择生成日志,请确保路径与日志文件的正确性,如果路径不存在或不正确,会导致定时任务无法正常运行。

公钥与私钥

因为全程只粘贴了一次公钥,在python代码中并没有涉及到配对的语句,所以查找了一下私钥的用处,私钥保存在本地,被命名为指定文件名,ssh客户端会自动去查找匹配,所以不需要在代码中涉及,还真是蛮方便的。

关于私钥

  • SSH客户端自动查找:当你运行 scp 或 ssh 命令时,系统会自动在 ~/.ssh/ 目录下查找可用的私钥;
  • 按顺序尝试:SSH会按 id_rsa, id_ecdsa, id_ed25519, id_dsa 的顺序尝试私钥;
  • 无需代码干预:这个过程在SSH客户端内部完成,不需要在Python代码中指定。

标签: 云服务器

移动端可扫我直达哦~

推荐阅读

thumbnail 2025-11-28

购买云服务器之后应该先做什么—ip地址检测

因为天翼云即将到期,新购了阿里云的服务器,个人博客,承担不起连续包年的费用,所以隔一两年得去薅一把云服务商的羊毛。当然,随着技术的发展,服务器的成本也是逐年在下降的,所以云服务商们动辄几千一年的服务器费用,个人觉得其中也有挺大的水分。...

建站相关 云服务器

thumbnail 2023-05-25

香港云服务器的后缀名-ctg,bgp,cn2,cmi

自己的服务器用的是天翼云的,蹭了新用户的资格,一次性续了4年。服务器上暂时只搭建了一个个人博客,时不时写几篇博文。俗话说,好记性不如烂笔头,几个月之后需要重新回忆某个曾经做过的项目的时候,博客的好处就体现了出来,至少自己知道有个地方有...

建站相关 云服务器

thumbnail 2023-04-09

如何变更备案信息至新的服务器

博主之前使用的阿里云服务器,云服务器商对于新购的优惠力度普遍较大,相比之下,续费的折扣就少了很多。个人博客没有收入来源,所以也不愿意投入太多,只能在即将到期之际,换一下云服务商,获取新一轮的新人价。至于为什么要写博客,一方面随着年龄的...

建站相关 云服务器

thumbnail 2023-03-30

如何在一个服务器上放置多个站点

在阿里云购买的服务器快到期了,想把阿里云上的站点迁移到目前使用的电信服务器上。因为电信服务器上已经放置了一个typecho博客,所以学习一下在同一个服务器上放置两个不同的站点。数据库准备首先当然是登陆数据库,为新站点创建一个数据库名称...

建站相关 云服务器

thumbnail 2022-10-25

关于华为的云服务器

遇到微信的云客服询问是否需要购买服务器,说实话真不觉得这东西有这么大的市场需求。然而阿里云腾讯云这密密麻麻的功能选项又让人觉得不明觉厉。自己购买一台云服务器纯粹就为了建一个个人博客,记录一下工作与生活琐事。用习惯了说真的还是蛮方便的,...

建站相关 云服务器

thumbnail 2022-10-09

阿里云ecs搭建lnmp环境

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第...

建站相关 云服务器

thumbnail 2022-09-24

天翼云搭建LAMP环境

LAMP是一组开源软件的缩写,一个字母分别代表一个软件,依次是Linux、Apache、MySQL和PHP。虽然这些开放源代码程序本身并不是专门设计成同另几个程序一起工作的,但由于它们性能优越且易于获取,让这个组合开始逐渐流行并被普遍...

建站相关 云服务器