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

1 首先要配置smtp服务

我这里使用的是qq邮箱

拿到smtp的密钥

2 配置mail.rc文件

在配置文件末尾加上

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

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

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 根据数据格式编写脚本

bash 复制代码
#!/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

相关推荐
2601_949815842 分钟前
Linux下PostgreSQL-12.0安装部署详细步骤
linux·运维·postgresql
minji...8 分钟前
Linux 线程同步与互斥(四) POSIX信号量,基于环形队列的生产者消费者模型
linux·运维·服务器·c语言·开发语言·c++
抠脚学代码23 分钟前
Linux开发-->驱动开发-->字符设备驱动框架(2)
linux·运维·驱动开发
热爱Liunx的丘丘人31 分钟前
Ansible的Playbook案例一
linux·运维·服务器·ansible
Minla38 分钟前
kubectl常用命令别名设置(linux|windows)
linux·运维·服务器·k8s
程序猿编码40 分钟前
给Linux程序穿“隐身衣”——ELF运行时加密器全解析(C/C++代码实现)
linux·c语言·c++·网络安全·elf·内存安全
cyber_两只龙宝1 小时前
【Oracle】Oracle之SQL的聚合函数和分组
linux·运维·数据库·sql·云原生·oracle
做运维的阿瑞1 小时前
Linux 系统启动过程解析
linux·运维·服务器
菜菜小狗的学习笔记1 小时前
八股(六)操作系统
linux·运维·服务器
zhou757712171 小时前
linux搭建 Hermes Agent(爱马仕)
linux·运维·服务器