linux 主机部署 ArchiSteamFarm

前言

之前在介绍 ArchiSteamFarm(一下简称 asf)时,介绍了它的简单用法,在这篇文章里面我们介绍如何把 asf 部署到远程主机上并自动挂卡.

需要的东西

  • 国外 linux 主机一台(centos7)
  • ssh 客户端
  • asf for linux x64

安装 asf

环境配置

安装 .NET core 和 screen

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl=https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'
sudo yum update
sudo yum install libunwind libicu
sudo yum install dotnet-sdk-2.0.0
sudo yum -y install screen

配置 asf

https://github.com/JustArchiNET/ArchiSteamFarm/releases下载 asf for linux x64 ,接着配置 /config/bot.json ,例如

{
"Enabled": true,
"FarmOffline": true,
"SteamLogin": "steam 账户名",
"SteamPassword": "steam 验证密码"
}

接着使用 scp 上传到远程主机的/opt目录下.

启动 asf

cd /opt/ASF/ArchiSteamFarm

赋权:

chmod -x ArchiSteamFarm

开启一个新的 screen

screen

运行asf

./ArchiSteamFarm

输入 steam 手机验证码,使用ctrl+a+d将screen部署到后台,再断开SSH连接,完成.

附:linux 中的 screen

在linux开发中,我们经常用终端软件连入linux服务器进行一些操作,或者编辑代码。当需要编辑多个文件,并且经常要执行一些系统命令时,不得已要开多个终端窗口连入服务器或者来回进行文件切换或者退出文件编辑来执行系统命令,造成效率低下而且繁琐。如果经常遇到这样的问题,那就应该尝试使用以下linux的Screen工具了。Screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。Screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。在使用过程中可以退出screen,甚至可以关掉登录窗口,下次再进去重新挂上screen会话,所有工作全部都会恢复。

screen 的语法

screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s ][-S <作业名称>]

screen 的参数

-A  将所有的视窗都调整为目前终端机的大小。
-d <作业名称>  将指定的screen作业离线。
-h <行数>  指定视窗的缓冲区行数。
-m  即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r <作业名称>  恢复离线的screen作业。
-R  先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s  指定建立新视窗时,所要执行的shell。
-S <作业名称>  指定screen作业的名称。
-v  显示版本信息。
-x  恢复之前离线的screen作业。
-ls或--list  显示目前所有的screen作业。
-wipe  检查目前所有的screen作业,并删除已经无法使用的screen作业。

常用的 screen 命令

screen -S yourname -> 新建一个叫yourname的session
screen -ls -> 列出当前所有的session
screen -r yourname -> 回到yourname这个session
screen -d yourname -> 远程detach某个session
screen -d -r yourname -> 结束当前session并回到yourname这个session

启动 screen

输入screen来创建一个 screen

查看已经创建的 screen

screen -ls

WX20190701-154132@2x

回话分离

在一个 screen 中:

ctrl + a + d

来分离当前的 screen

重新连接会话

screen -r screenID

来恢复会话

关闭已经创建的 screen

  • 方法1: (exit):

    Screen -r
    
    screen -ls 
    
    There is a screen on:
        30339.pyapi (Detached)
    1 Socket in /var/run/screen/S-root.
    
    screen -r 30339        //进入要中断的screen
    
    exit        //exit 或者 control +c 退出 screen
    
  • 方法2: (Screen -S screenID -X quit)
[root@localhost ~]# screen -ls
There is a screen on:
    41493.pyapi    (Detached)
1 Socket in /var/run/screen/S-root.

[root@localhost ~]# screen  -S 41493.pyapi -X quit
[root@localhost ~]# screen -ls
No Sockets found in /var/run/screen/S-root.
thank u !