低功耗服務器
最近尋思着弄一臺低功耗 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 掉你想關的後臺程序便可
應用場景:
是個中國人就可能碰到。。。
嗯,這個問題我如今用的方式是:不用中文?。
理由是: