阿里云定时任务并自动释放
前言
最近写了一个爬虫脚本, 脚本跑在一台北京的 ecs 上. 但奈何因某种未知力量, 需要连接代理才能访问目标网站.
本来想着自己搭代理, 但是太贵了, 就暂时搁置了. 直到我发现了这个:
阿里云香港的服务器, 一个小时才5分钱. 如果脚本直接跑在香港服务器上不就可以了咩, 按照这个价格, 我每天使用一个小时, 一个月也就不到两块(流量另付).
窥探
我的基本思路是这样的:
- 北京 ecs 定时任务, 创建并启动香港 ecs
- 在香港 ecs 上执行任务
- 任务执行完成后, 将香港 ecs 删除
说干就干, 查了一下阿里云提供的API
, 云服务商确实是方便, 基本所有操作都可以通过API
来执行. API
文档地址: https://next.api.aliyun.com/api/Ecs
其API
文档上每个语言的每个接口, 都有对应的 demo, 这点点个赞.
启动 ecs
启动 ecs 方法: runInstances
, 可以自定义参数, 不过个人推荐创建一个启动模板, 比较方便:
其中的UserData
参数 其实就是一个小脚本, 不过不能超过16kb. 自定义数据文档
我们就通过他, 在 ecs 创建之后自动执行任务.
通过下面命令, 可查看传入 ecs 的脚本内容(其实在文档中写的很清楚了):
curl http://100.100.100.200/latest/user-data
好, 我们启动的脚本需要执行以下操作:
- 初始化环境
- 将需要运行的项目拽下来
- 运行脚本
- 完成后将自己删除
我的脚本大概这样, 可供参考:
#!/bin/sh
# 先下载依赖
apt update
apt install -y git php curl
# 安装 composer
export HOME=/root
curl -sS https://getcomposer.org/installer -o /root/composer-setup.php
/usr/bin/php /root/composer-setup.php --install-dir=/usr/local/bin --filename=composer
# 下载项目
git clone xxx /var/workspace
# 安装vendor
cd /var/workspace
printf 'yes\n' | composer install
# 导入配置文件
echo '$confJson' > /var/workspace/cron/conf.json
# 运行命令...
# 运行脚本将自己删除
php /var/worspace/cron/delete_self.php
注意, 这里将删除自己的脚本单独拿出来了, 为什么不再任务脚本执行完成后直接删除自己呢? 如果因为某种不可知的原因, 任务脚本挂了, 会导致实例没有被正常删除, 这可都是白花花的银子啊.
如果你遇到UserData
有问题, 但是开一台新的 ecs 后, 重新运行又没问题. 此时, 可查看/var/log/cloud-init-output.log
文件进行排查, 记录了初始化脚本的运行结果.
删除 ecs
现在任务已经跑起来了, 但是跑完了之后还需要删除自己呀. 查看后发现了deleteInstances
方法, 但参数需要instanceId
, 如何获得当前运行实例的instanceId
呢? 找了一下文档中也有介绍
小提示, 查找语法: instance-Id site:https://help.aliyun.com/
直接定位目标页面.
访问地址:
curl http://100.100.100.200/latest/meta-data/instance-id
获取当前实例 ID 后, 接下来就简单了, 把自己删除掉就好啦.
通过这种方式执行脚本, 实在是经济又实惠. 有需要的小伙伴不妨一试哦~
阿里云定时任务并自动释放相关推荐
- 阿里云盘三月自动签到Python脚本,可本地、青龙、云函数自动执行
阿里云盘自动签到脚本 引言 准备工作 运行脚本 本地运行 下载脚本 配置 python 运行环境 安装依赖 运行脚本 运行结果 青龙面板运行 新增订阅 安装依赖 添加环境变量 运行脚本 注意 本文博客 ...
- 对话阿里云叔同:释放云价值,让容器成为“普适”技术
戳蓝字"CSDN云计算"关注我们哦! 作者 | 刘丹 受访者 | 丁宇 出品 | CSDN云计算(ID:CSDNcloud) 云改变了IT业态和市场格局,催生了应用大发展的时代,企 ...
- Air202掉坑日记(2)——连接阿里云成功后自动掉线(AT版本)
离上次更新已经过了20来天了,主要还是因为工作原因一直丢在旁边吃灰,趁着补休赶紧拿出来玩玩,结果一不小心又掉入新坑,不说了直接上图吧! 发送AT+MIPSTART=****************** ...
- 阿里云服务器到期后多久会释放
阿里云服务器到期多久释放?如果你买的是阿里云轻量应用服务器,到期后会将服务器关机,7 天内数据保留,用户可以续费.超过 7 天后未续费,服务器将会被释放. 如果你买的是阿里云的云服务器ECS,一般会将 ...
- 阿里云ACP认证详细笔记(一)
2019独角兽企业重金招聘Python工程师标准>>> ECS -------------------------- 1.云服务器Elastic Compute Service(EC ...
- API信息全掌控,方便你的日志管理——阿里云推出API网关打通日志服务
摘要: 近日,阿里云API网关对接了日志服务,可以输出用户在API网关产生的API调用日志,目前支持将 API 接入 API 网关的用户查看日志明细.概况.报表分析.在线查询等. 访问日志(Accce ...
- 浅谈MQTT底层原理(网络调试助手直连阿里云)
目录 第一节 本文探讨的内容 第二节 环境搭建 第三节 MQTT控制报文格式 第四节 CONNEC报文 第五节 订阅和取消订阅 第六节 接收消息和发布消息 第七节 网络调试助手直连阿里云极速体验 第一 ...
- 阿里云证书 | 套路太深,还是我打开姿势不对?
文章所有链接,请点击文章左下角"阅读原文"查阅. 一.阿里云证书资源包初体验 2021 年 1 月 13 左右,收到阿里云提示个人 SSL 证书即将过期,需要续费.于是登陆阿里云, ...
- 使用阿里云接口实现证件照制作
之前制作证件照使用face++的人像抠图和自己实现向face++抠出来的透明图加上自己设置的背景实现证件照的制作,后面发现如果拍的照片不是很正规的话,使用抠图再增加背景色后制作成的证件照感觉不是很好, ...
最新文章
- JDK、JRE、JVM三者间的关系(有图)
- csgo陀螺仪是什么意思_CSGO:起源2将在五月中旬推出?B5无意间透露出这个消息...
- MySQL / schema的概念
- PWN-PRACTICE-BUUCTF-12
- 招商银行信用卡中心华泰证券暑期实习软开笔试小结
- 局域网中计算机网络密码查看,Win10怎么查看电脑上已知的wifi网络密码
- IDEA使用git提交代码时,点了commit之后卡死在performing code analysis部分,或者performing code analysis结束后没有进入下一步操作。
- socket编程简单Demo讲解及源码分享(C# Winform 内网)
- 索尼爱立信k510驱动_未来人工智能驱动的电信网络:爱立信案例研究
- BZOJ3813 奇数国
- dux修改index.php,DUX主题修改首页轮播图为通栏模式
- 九宫格,二十五宫格,甚至八十一宫格 技巧
- 怎么用计算机弹奏忘羡,《忘羡,钢琴谱》魔道祖师 岚之调(五线谱 钢琴曲 指法)-弹吧|蛐蛐钢琴网...
- 关于一台机器运行两个身份证读卡器模块(总结)
- 拉黑的微信好友怎么恢复,拉黑的微信好友聊天记录还在吗
- 全国计算机四级网络工程师教程,全国计算机等级考试立体化应试教程——四级网络工程师...
- cocos2dx fnt字体、自定义字体制作
- 最近公共祖先 (Lowest common ancestor)
- C++类与对象入门实践(日期类的实现)
- 基于Visual C++ 2010开发Windows7应用 开发多点触控MFC应用程序
热门文章
- 通过数组和枚举简化GPIO操作编码
- smbus协议的command_SMBus总线概述
- mybatisplus新增返回主键_第17期:索引设计(主键设计)
- iptable 详解_最全的iptables防火墙详解.pdf
- ubuntu 设置开机执行脚本_Ubuntu 16.04设置rc.local开机启动命令/脚本的方法
- JAVA入门级教学之(多态)
- JAVA入门级教学之(方法-4)
- b - 数据结构实验之查找二:平衡二叉树_文件系统的灵魂数据结构 B树
- python次方运算_neg__python 魔术方法1 运算符重载
- python的特点及应用-python有什么特性和劣势?老男孩python入门