Linux 编写脚本定时发送天气预报

本文介绍了如何配置SMTP服务以使用QQ邮箱发送邮件,包括获取SMTP密钥和设置mail.rc文件。还展示了如何创建和风天气账号,获取APIKey,以及使用bash脚本和jq工具从JSON数据中提取天气信息并自动发送早间邮件。最后,讲解了如何将脚本加入定时任务中以实现自动化。
摘要由CSDN通过智能技术生成

1 首先要配置smtp服务

 我这里使用的是qq邮箱

拿到smtp的密钥

2 配置mail.rc文件

  在配置文件末尾加上

set from=109456****@qq.com  #这里是发送邮件的地址

set smtp=smtp.qq.com:587 #阿里云一定要带上这个端口号,其他云服务商不用

set smtp-auth-user=109456****   #这里是你的邮箱用户名

set smtp-auth-password=ttaxtewfdnic****   #这里填你刚刚保存的SMTP授权码

set smtp-auth=login       #这一行不变

  配置完之后用这条命令测试是否可以发邮件

echo ""|mail -v -s "test" x'x'x'x'x'x@qq.com

3 创建和风天气账号,创建项目,拿到api key

和风天气的返回数据是json格式

4 根据数据格式编写脚本

#!/bin/bash
curl -s -L -X GET --compressed 'https://devapi.qweather.com/v7/weather/now?location=101240701&key=ef53e2294aa7471199ded2117b4e8083' >&/home/chenX/weather/weather.json
temp=$(cat weather.json | jq '.now.temp')
text=$(cat weather.json | jq '.now.text')
windDir=$(cat weather.json | jq '.now.windDir')
windScale=$(cat weather.json | jq '.now.windScale') 
humidity=$(cat weather.json | jq '.now.humidity')
vis==$(cat weather.json | jq '.now.vis ')                                               
echo "又是新的一天,今天天气:${text},温度为: ${temp},风向:${windDir}, 等级:${windScale},相对湿度为${humidity},能见度为${vis}" | mail -v -s "morning" 2663385007@qq.com

5 将bash脚本加入定时任务当中

 crontab -e
 

重启定时任务

crontab -l  查看定时任务

特别注意:

为了解析json参数,我们需要安装jq

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值