低功耗服务器
最近寻思着弄一台低功耗 linux
服务器用,只运行一些小程序,例如 Python
写的爬虫或者定时任务。网上看了一圈,什么树莓派呀啥的,一套下来要两三百了,有点不划算。忽然想到我还有一个小米3触控不灵,闲置着。看了一下它的配置,ac 的 wifi + 2.3GHz 的 cpu,很强啦!(比树莓派强)python
装个 Ubuntu core
!linux
本安装方法基于开源项目 Linux on Android,该项目让你可以在安卓手机上运行不少 Linux 发行版。android
固然了本篇文章只讲解如何安装 Ubuntu 13.10 core
,也就是只有命令行的版本(做为服务器,不须要图形界面,最大化性能)shell
注:此方法理应适用于 android 版本大于4.3的手机,而且必需要 ROOT
!ubuntu
注2: 若是你这手机只用做服务器的话,在条件容许的状况下,建议你再把手机系统刷成AOSP(安卓官方开源项目,无任何捆绑、后台软件,最大限度释放你老手机的性能),小程序
注3?: (没想到吧,还特么有注3。。)若是你只是轻度折腾一族,强烈建议不要刷AOSP,否则中途放弃了,就不能看下面的教程了bash
咱们须要下载的文件有这么几个:服务器
文件名 | 做用 | 下载地址 |
---|---|---|
ubuntu.img | Ubuntu 镜像 | core 种子文件 |
ubuntu.sh | 安装 Ubuntu 的脚本文件 | 百度云 密码: td75 |
androidterm.apk | 能在安卓上敲命令行的应用 | 百度云 密码: crzy |
busybox.apk | 增长更多命令行命令 | 百度云 密码:tizn |
固然这些我也都放在了百度盘里面,你能够打包下载 密码:tiut
。网络
下载好后,把 androidterm.apk
和 busybox.apk
安装到手机上,而后在手机存储(非外置内存卡)根目录下新建一个文件夹 ubuntu
,把 ubuntu.img
和 ubuntu.sh
都复制进去。python2.7
准备工做都已经完成,开始安装吧!
busybox
弹出的第一个窗口点叉关掉,而后在主界面中选择安装版本:1.26.2
或更高,安装位置选择为:/system/bin
,最后点击左下角的 Install
(期间会弹出请求 ROOT 受权,请选择容许)等待安装完成便可;Terminal
(也叫 终端) 这个 App,出如今咱们眼前的是命令行界面,咱们键入 cd /sdcard/ubuntu
点击键盘上的回车按钮(或者是 确认),他将会切换目录到咱们以前存放 ubuntu.img
和 ubuntu.sh
的文件目录下。而后输入 su
并肯定,将会切换为 ROOT 用户,接着键入 sh ./ubuntu.sh
便可开始安装 Ubuntu 了。安装的时候会让你输入新建的 ubuntu root 用户密码,并再次输入以确认,而后会问你是否开启 VNC 服务,我没有图形界面,则输入 n 并肯定,接着他又会问你,是否开启 ssh 服务,这个必需要啊!! 输入 y 并肯定,最后会问你是否将刚才的输入保存为默认,输入 y 点肯定便可。
等命令行开头的部分变成:root@localhost 时,就说明安装并启动完成啦!
在使用前,要确保你的手机是链接了 WiFi 网络的(否则有啥用呢),而后在手机的命令行中,输入 ifconfig
,看里面能看到你手机的 IP 地址,你在其余设备上,用 root 用户 ssh 链接这个 IP 就好了!
做为服务器,是不容许机器自动挂掉的,因此,你须要将 terminal
这个程序锁住,不让系统自动关闭它,并保持着为手机充电的状态,这样,一个自带 ups 的低功耗服务器就搭建成功了。
长期更新
,后记则是用做后期优化以及问题解决方案提供的一个板块
Ubuntu改源怎么操做不用这里说明了吧,下面列出两个比较快的源:
中科大源
deb http://mirrors.ustc.edu.cn/ubuntu-ports trusty main universe restricted multiverse deb http://mirrors.ustc.edu.cn/ubuntu-ports trusty-security main universe restricted multiverse deb http://mirrors.ustc.edu.cn/ubuntu-ports trusty-updates main universe restricted multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu-ports trusty main universe restricted multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu-ports trusty-security main universe restricted multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu-ports trusty-updates main universe restricted multiverse
清华源
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ trusty main universe restricted multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ trusty-security main universe restricted multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ trusty-updates main universe restricted multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ trusty main universe restricted multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ trusty-security main universe restricted multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ trusty-updates main universe restricted multiverse
有了 Python 这服务器才像样,哈哈。
我这里选择的是安装 Python3
, 如下方式进行安装:
# 安装 python3 sudo apt-get install python3 # 安装 python3 对应的 pip sudo apt-get install python3-pip
应用场景:
天天自动签到的爬虫程序。
通过反复测试,好像这个版本中的crontab
(经过 sudo apt-get install cron
安装)没法正常执行任务,在进程列表(ps -e | grep cron
)中也看不到其踪迹。因此放弃之,用 python
来解决(若是你有其余解决方法,请不惜赐教):
下面例子是每秒打印一次 hello world 到标准输出
hello.py
# -*- coding: UTF-8 -*- import threading # 任务执行间隔时间,下面是 1s 也就每秒执行一次 INTERVAL_TIME = 1 def task(): # 在这里写下你要执行的命令,例如打印 HelloWorld print('Hello World!\n') def cron(): task() threading.Timer(INTERVAL_TIME, cron).start() # 调用 cron 函数,即开始任务 cron()
执行的话就这样:
# 使用系统默认 python2.7 执行 python hello.py # 使用新装的 python3 执行 python hello.py
咱们就能看见控制台每秒都打印出字符了。
进阶:让脚本在后台执行,_即便咱们关闭当前 shell,它也执行_
# 固然这句执行后,除了返回一个 pID 啥都没有的,若是你之后的脚本要输出信息, # 就只须要将信息写入指定的 log 文件中便可 nohup python ./hello.py &
以上命令执行后会返回一个 pID,若是你想结束这个后台程序,只须要这样
kill 对应的pID
若是 pID 记不得了,下面方法能帮助你:
# 若是是用 python 执行的后台程序,就输入如下命令 ps -e|grep python
就能得到对应的列表,列表第一列就是 pID, kill 掉你想关的后台程序便可
应用场景:
是个中国人就可能碰到。。。
嗯,这个问题我如今用的方式是:不用中文?。
理由是: