使用脚本自动抢Oracle ARM服务器,并使用PushDeer通知
本文最后更新于 75 天前,其中的信息可能已经有所发展或是发生改变。

需要用到的

  • 一台vps服务器
  • Terraform
  • oci-cli

    一、安装Terraform

wget https://releases.hashicorp.com/terraform/0.15.5/terraform_0.15.5_linux_amd64.zip

解压,并移动文件terraform到/usr/bin目录

unzip terraform_0.15.5_linux_amd64.zip
mv terraform /usr/bin

使用以下命令查看版本

terraform version

显示如下则安装成功

file

二、安装oci-cli工具

使用以下命令安装oci-cli工具

bash -c "$(curl –L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"

一直回车即可
当出现:

file

这个时候,是在提示你输入y回车,会自动添加环境变量
之后又是一直回车。出现如下提示表示安装成功。可以用:oci -v 查询版本

file

三、复制用户和租户的ocid

甲骨文后台右上角—用户设置—点击用户以及租户,在信息栏中有我们需要的ID,分别点击复制,可以保存在记事本备份好

file

file

四、配置cli

输入如下代码开始配置,配置的路径默认在root目录

oci setup config

具体配置看下面

Enter a location for your config [/root/.oci/config]: 
Enter a user OCID: #输入你的用户OCID
Enter a tenancy OCID: #输入你的租户OCID
Enter a region by index or name(e.g.
1: ap-chiyoda-1, 2: ap-chuncheon-1, 3: ap-hyderabad-1, 4: ap-melbourne-1, 5: ap-mumbai-1,
6: ap-osaka-1, 7: ap-seoul-1, 8: ap-sydney-1, 9: ap-tokyo-1, 10: ca-montreal-1,
11: ca-toronto-1, 12: eu-amsterdam-1, 13: eu-frankfurt-1, 14: eu-zurich-1, 15: me-dubai-1,
16: me-jeddah-1, 17: sa-santiago-1, 18: sa-saopaulo-1, 19: uk-cardiff-1, 20: uk-gov-cardiff-1,
21: uk-gov-london-1, 22: uk-london-1, 23: us-ashburn-1, 24: us-gov-ashburn-1, 25: us-gov-chicago-1,
26: us-gov-phoenix-1, 27: us-langley-1, 28: us-luke-1, 29: us-phoenix-1, 30: us-sanjose-1): 9  #这里选择你的区域
Do you want to generate a new API Signing RSA key pair? (If you decline you will be asked to supply the path to an existing key.) [Y/n]: y  #输入y生成公钥
Enter a directory for your keys to be created [/root/.oci]: 
Enter a name for your key [oci_api_key]: 
Public key written to: /root/.oci/oci_api_key_public.pem
Enter a passphrase for your private key (empty for no passphrase): 
Private key written to: /root/.oci/oci_api_key.pem
Fingerprint: 
Config written to /root/.oci/config

    If you haven't already uploaded your API Signing public key through the
    console, follow the instructions on the page linked below in the section
    'How to upload the public key':

   https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#How2

复制生成的公钥,使用以下命令获取公钥

cat /root/.oci/oci_api_key_public.pem

把显示出来的内容复制,并且添加到
甲骨文后台—用户设置—资源—API秘钥—添加API秘钥

file

使用以下命令测试oci配置是否正确

oci iam availability-domain list

提示以下内容则是配置正确

file

五、Terraform环境初始化

1、我们先获取甲骨文的Terraform脚本

点击 创建VM实例

file

在这里选择你需要的配置
file

记得保存私钥
file

点击 另存为堆栈
一直下一步
file

点击下载
file

将压缩包解压到桌面备用
file

2、配置Terraform

使用以下命令创建Terraform运行目录

cd /opt/
mkdir terraform-learning && cd terraform-learning

将刚刚解压到桌面的main.tf文件 上传到这个目录

file

将目录设置为Terraform运行目录

terraform init

以上完成后,开始创建任务,用命令:(注意还是在/opt/terraform-learning)

terraform apply

执行完上面命令之后,会提示输入yes

file

上图还能看到API返回Error Message: Out of host capacity,提示主机容量不足,下面就用脚本来不停刷就行了

六、部署脚本

**终于可以部署脚本来抢服务器了,请先获取PushDeer账号Key(用于推送成功通知),相关自建PushDeer请访问GitHub项目(PushDeer)

6.1 抢购脚本

在root目录下新建一个terraform.sh

cd /root
vi terraform.sh

写入以下内容

#!/bin/bash

path='/opt/terraform-learning/'
FIND_FILE="/root/terraform.log" #日志文件位置
FIND_STR="Apply complete!"
cd $path &&
while true
do
    echo 'yes' | terraform apply -lock=false
    sleep 1s
done

给Shell脚本赋予执行权限:

chmod +x terraform.sh

使用以下命令后台执行脚本

nohup ./terraform.sh >> terraform.log 2>&1  &
如何结束脚本?

使用以下命令结束脚本

pkill terraform
6.2 监控通知脚本

在root目录下新建一个monitor_terraform.sh

cd /root
vi monitor_terraform.sh

写入以下内容

#! /bin/bash
FIND_FILE="/root/terraform.log" #日志文件位置
FIND_STR="Apply complete!"
red='\033[31m'
green='\033[32m'
yellow='\033[33m'
plain='\033[0m'
while true
do
time=$(date +"%Y-%m-%d %H:%M:%S")
grep -q "${FIND_STR}" ${FIND_FILE}
if [ $? -eq 0 ];then
    curl "PushDeer服务器地址/message/push?pushkey=请输入你的Key&text=新加坡抢到机子了!"
#示例 curl "http://127.0.0.1:8800/message/push?pushkey=PDU1TXU0ZAuP4gTw7&text=新加坡抢到机子了!"
pkill terraform
#当抢到时自动停止自动抢购脚本
exit 0  
else
echo -e "${green}${time} 未抢到ARM机子!${plain}"
sleep 5s
fi
done

给Shell脚本赋予执行权限:

chmod +x monitor_terraform.sh

使用以下命令后台执行脚本

nohup ./monitor_terraform.sh >> monitor_terraform.log 2>&1  &
如何结束脚本?

使用以下命令结束脚本

pkill monitor_terraform
本文仅用于学习、研究和交流目的,欢迎非商业性质转载。
本文链接:https://him.plus/archives/274
本人邮箱:mail@him.plus
● 文章内容仅供参考,所涉及的软件以具体使用情况为准!
● 文章内容部分来源于互联网,本站不代表任何立场;涉及到的软件来源于互联网,仅供个人学习参考,请勿用于商业用途,版权归软件开发者所有,下载后请务必于24小时内删除,请支持正版!因下载本站任何资源造成的损失,全部责任由使用者本人承担!如果你是版权方,认为本文内容对您的权益有所侵犯,请联系本站管理员,并参照侵删联系的说明提交相应的证明材料,本站将进行严格地资质审查和背景调查后,情况属实的将在三天内对本文删除或修正。本站对互联网版权绝对支持!
● 本站一贯非常高度重视知识产权保护并遵守各项知识产权法律、法规和具有约束力的规范性文件。重视正版,打击盗版。根据法律、法规和规范性文件要求,本站旨在保护权利人的合法权益的措施和步骤,当权利人发现在本站生成的链接所指向的第三方网页的内容侵犯其合法权益时,权利人应事先向本站发出"权利通知",本站将根据当地法律法规和政府规范性文件采取措施移除相关内容或链接。
● 访问本站的用户必须明白,本站对提供下载的第三方软件不拥有任何权利,其版权归该资源的合法拥有者所有。
● 本站保证站内提供的所有可下载资源(软件等)都是按“原样”提供,本站未做过任何改动;但本网站不保证本站提供的下载资源的准确性、安全性和完整性;同时本站也不承担用户因使用这些下载资源对自己和他人造成任何形式的损失或伤害。不论何种情形我们都不对任何由于使用或无法使用本站提供的信息所造成的直接的、间接的、附带的、特殊的或余波所及的损失、灵失、债务或中断负任何责任﹝不论是可预见或是不可预见的,即使我们巳被告知这种可能性﹞。

评论

  1. YYDS
    Windows Firefox 94.0
    7月前
    2021-11-09 15:03:18

    自动脚本好像挂了

    • HIM
      博主
      YYDS
      Windows Chrome 95.0.4638.69
      6月前
      2021-11-11 18:18:51

      没有啊,还可以继续刷,刚刚抢到一个

  2. 1
    Macintosh Safari 15.1
    已编辑
    6月前
    2021-11-12 10:59:56

    –form ‘text=服务器创建成功!’
    –form ‘chat_id=你的tg id’
    –form ‘parse_mode=markdown’
    老哥 我想请问下这 填写tg id 还是机器人id 是通知抢到货的消息吗?

    • HIM
      1
      iPhone Safari 15.1
      6月前
      2021-11-12 11:07:00

      对的,通过tg机器人通知

      • duolalaya
        HIM
        Macintosh Safari 15.1
        6月前
        2021-11-12 11:11:28

        –form ‘chat_id=你的tg id’ 这就只填写机器人id 就好了吗?

        • HIM
          duolalaya
          iPhone Safari 15.1
          6月前
          2021-11-12 11:12:49

          对的,只需要填写你的tg id,纯数字的id

          • duolala
            HIM
            Macintosh Safari 15.1
            6月前
            2021-11-12 11:16:44

            明白了 谢谢你

  3. HIM
    博主
    Windows Chrome 96.0.4664.45
    6月前
    2021-11-23 18:50:52

    if [ grep -c “$FIND_STR” $FIND_FILE -ne ‘0’ ]
    此行写错了判断行数,导致无法正常识别是否成功创建,现已修复

  4. Windows Chrome 95.0.4638.69
    5月前
    2021-12-29 22:46:44

    一般多久能抢到,能在后台看到吗?

    • HIM
      Windows Chrome 96.0.4664.110
      5月前
      2022-1-03 16:25:28

      一般看有没有货,放货的话差不多就一天,没货的话差不多一周

  5. loveman5715
    iPhone Chrome 97.0.4692.84
    4月前
    2022-1-20 10:15:33

    机器人一定要抢到了才来消息吗?没有一点提示像石沉大海的感觉

    • HIM
      博主
      loveman5715
      Windows Chrome 97.0.4692.99
      4月前
      2022-1-27 23:14:58

      目前发现,莫名其妙发不出去消息,可以忽略机器人了

      • chris
        HIM
        iPhone Chrome 97.0.4692.84
        4月前
        2022-2-06 6:33:23

        抢到后没有密钥怎么办?

      • HIM
        Windows Chrome 95.0.4638.69
        3月前
        2022-2-16 20:57:46

        抢到了机器人也不发信息了吗,那怎么知道是否成功了呢?

        • HIM
          博主
          Windows Chrome 98.0.4758.102
          3月前
          2022-3-08 22:10:50

          目前更新了消息推送脚本,通过pushdeer进行推送

          • HIM
            Windows Edge 99.0.1150.39
            2月前
            2022-3-16 14:51:59

            之前的脚本除了没有推送,还是正常能用的吗,用之前那个脚本抢了3个周了,还是没反应。不知道是脚本失效还是没抢到。

          • HIM
            iPhone Safari 15.4
            2月前
            2022-3-16 14:53:39

            之前的脚本除了没有推送以外,功能都是正常使用的

          • HIM
            Windows Edge 99.0.1150.39
            2月前
            2022-3-16 15:08:35

            那怎么停用老脚本,换这个新脚本呢,或者换只增加消息推送,抢机器的脚本继续运行呢?

          • HIM
            iPhone Safari 15.4
            2月前
            2022-3-16 15:10:51

            停止旧的抢购脚本请使用pkill terraform命令
            如果只添加监控脚本的话,请按照6.2的步骤进行

          • HIM
            Windows Edge 99.0.1150.39
            2月前
            2022-3-16 16:04:17

            老脚本抢到后还会自动停止吗?

          • HIM
            iPhone Safari 15.4
            2月前
            2022-3-16 16:13:54

            当你使用监控脚本时,检测到抢到以后,会自动发送通知并停止抢购脚本,最后自身退出

  6. chris
    iPhone Chrome 97.0.4692.84
    4月前
    2022-2-06 6:36:10

    抢到后没有密钥怎么办?

    • HIM
      博主
      chris
      Windows Chrome 98.0.4758.102
      3月前
      2022-3-08 22:13:29

      在第五步 Terraform环境初始化 中提到过需要保存私钥,如果没有私钥的话,建议使用其他服务器挂载引导卷进行dd系统,或者删机重开

  7. HIM
    博主
    Windows Chrome 98.0.4758.102
    3月前
    2022-3-08 22:15:20

    最近比较忙所以就没有怎么管理博客,目前闲下来了稍微有些时间管理和更新博客了

    • Void
      HIM
      Windows Chrome 99.0.4844.84
      2月前
      2022-3-29 12:46:27

      博主你好,请问一下,最后面那个推送的脚本里面的服务器地址怎么填的

      • Void
        Void
        Windows Chrome 99.0.4844.84
        2月前
        2022-3-30 12:32:15

        看了GitHub的文档说明已经配置好了,现在就等抢到机器了

  8. Void
    Windows Chrome 99.0.4844.84
    2月前
    2022-3-29 12:11:13

    博主你好,我在 测试oci配置是否正确 这一步中 提示的信息和你的不一样
    提示:
    “code”: “NotAuthenticated”,
    “message”: “The required information to complete authentication was not provided or was incorrect.. Please visit https://docs.oracle.com/en-us/iaas/Content/API/References/apierrors.htm to learn more about this error code”,
    我就卡在这里了

    • Void
      Void
      Windows Chrome 99.0.4844.84
      2月前
      2022-3-29 12:23:49

      过一会又可以了

      • sonicxxx
        Void
        Windows Chrome 99.0.4844.51
        2月前
        2022-3-29 21:47:38

        我也是卡在这里,报401,请问你是怎么解决的呢

        • Void
          sonicxxx
          Windows Chrome 99.0.4844.84
          2月前
          2022-3-30 12:31:33

          过了一会就好了,可能Oracle那边添加api密钥要过一会才会生效吧

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇