新四季網

樹莓派能用手機看嗎(旅行時通過樹莓派和)

2023-06-11 10:15:26

旅行中備份圖片 - 組件

介紹

我在很長的時間內一直在尋找一個旅行中備份圖片的理想方法,把 SD 卡放進你的相機包會讓你暴露在太多的風險之中:SD 卡可能丟失或者被盜,數據可能損壞或者在傳輸過程中失敗。比較好的一個選擇是複製到另外一個介質中,即使它也是個 SD 卡,並且將它放到一個比較安全的地方去,備份到遠端也是一個可行的辦法,但是如果去了一個沒有網絡的地方就不太可行了。

我理想的備份步驟需要下面的工具:

用一臺 iPad pro 而不是一臺筆記本。我喜歡輕裝旅行,我的大部分旅程都是商務相關的(而不是拍攝休閒的),我痛恨帶著個人筆記本的時候還得帶著商務本。而我的 iPad 卻一直帶著,這就是我為什麼選擇它的原因。

用儘可能少的硬體設備。

設備之間的連接需要很安全。我需要在旅館和機場使用這套設備,所以設備之間的連接需要是封閉而加密的。

整個過程應該是可靠穩定的,我還用過其他的路由器/組合設備,但是效果不太理想[1]。

設備

我配置了一套滿足上麵條件並且在未來可以擴充的設備,它包含下面這些部件的使用:

9.7 英寸的 iPad Pro[2],這是本文寫作時最強大、輕薄的 iOS 設備,蘋果筆不是必需的,但是作為零件之一,當我在路上可以做一些編輯工作,所有的重活由樹莓派做 ,其他設備只能通過 SSH 連接就行。

安裝了 Raspbian 作業系統樹莓派 3[3](LCTT 譯註:Raspbian 是基於 Debian 的樹莓派作業系統)。

樹莓派的 Mini SD卡[4] 和盒子/外殼[5]。

128G 的優盤[6],對於我是夠用了,你可以買個更大的。你也可以買個像這樣[7]的移動硬碟,但是樹莓派沒法通過 USB 給移動硬碟提供足夠的電量,這意味你需要額外準備一個供電的 USB hub[8] 以及電纜,這就破壞了我們讓設備輕薄的初衷。

SD 讀卡器[9]

另外的 SD 卡[10],我會使用幾個 SD 卡,在用滿之前就會立即換一個,這樣就會讓我在一次旅途當中的照片散布在不同的 SD 卡上。

下圖展示了這些設備之間如何相互連接。

旅行時照片的備份-流程圖

樹莓派會作為一個安全的熱點。它會創建一個自己的 WPA2 加密的 WIFI 網絡,iPad Pro 會連入其中。雖然有很多在線教程教你如何創建 Ad Hoc 網絡(計算機到計算機的單對單網絡),還更簡單一些,但是它的連接是不加密的,而且附件的設備很容易就能連接進去。因此我選擇創建 WIFI 網絡。

相機的 SD 卡通過 SD 讀卡器插到樹莓派 USB 埠之一,128G 的大容量優盤一直插在樹莓派的另外一個 USB 埠上,我選擇了一款閃迪的[11],因為體積比較小。主要的思路就是通過 Python 腳本把 SD 卡的照片備份到優盤上,備份過程是增量備份,每次腳本運行時都只有變化的(比如新拍攝的照片)部分會添加到備份文件夾中,所以這個過程特別快。如果你有很多的照片或者拍攝了很多 RAW 格式的照片,在就是個巨大的優勢。iPad 將用來運行 Python 腳本,而且用來瀏覽 SD 卡和優盤的文件。

作為額外的好處,如果給樹莓派連上一根能上網的網線(比如通過乙太網口),那麼它就可以共享網際網路連接給那些通過 WIFI 連入的設備。

1. 樹莓派的設置

這部分需要你捲起袖子親自動手了,我們要用到 Raspbian 的命令行模式,我會儘可能詳細的介紹,方便大家進行下去。

安裝和配置 Raspbian

給樹莓派連接滑鼠、鍵盤和 LCD 顯示器,將 SD 卡插到樹莓派上,按照樹莓派官網[12]的步驟安裝 Raspbian。

安裝完後,打開 Raspbian 的終端,執行下面的命令:

sudo apt-get update

sudo apt-get upgrade

這將升級機器上所有的軟體到最新,我將樹莓派連接到本地網絡,而且為了安全更改了默認的密碼。

Raspbian 默認開啟了 SSH,這樣所有的設置可以在一個遠程的設備上完成。我也設置了 RSA 驗證,但這是可選的功能,可以在這裡[13]查看更多信息。

這是一個在 Mac 上在 iTerm[14] 裡建立 SSH 連接到樹莓派上的截圖14[15]。(LCTT 譯註:原文圖丟失。)

建立 WPA2 加密的 WIFI AP

安裝過程基於這篇文章[16],根據我的情況進行了調整。

1. 安裝軟體包

我們需要安裝下面的軟體包:

sudo apt-get install hostapd

sudo apt-get install dnsmasq

hostapd 用來使用內置的 WiFi 來創建 AP,dnsmasp 是一個組合的 DHCP 和 DNS 服務其,很容易設置。

2. 編輯 dhcpcd.conf

通過乙太網連接樹莓派,樹莓派上的網絡接口配置由 dhcpd控制,因此我們首先忽略這一點,將wlan0設置為一個靜態的 IP。

用 sudo nano /etc/dhcpcd.conf命令打開 dhcpcd 的配置文件,在最後一行添加上如下內容:

denyinterfaces wlan0

注意:它必須放在如果已經有的其它接口行之上

3. 編輯接口

現在設置靜態 IP,使用 sudo nano /etc/network/interfaces打開接口配置文件,按照如下信息編輯wlan0部分:

allow-hotplug wlan0

iface wlan0 inet static

address 192.168.1.1

netmask 255.255.255.0

network 192.168.1.0

broadcast 192.168.1.255

# wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

同樣,然後 wlan1編輯如下:

#allow-hotplug wlan1

#iface wlan1 inet manual

# wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

重要: 使用 sudo service dhcpcd restart命令重啟dhcpd服務,然後用sudo ifdown eth0; sudo ifup wlan0命令來重載wlan0的配置。

4. 配置 Hostapd

接下來,我們需要配置 hostapd,使用 sudo nano /etc/hostapd/hostapd.conf命令創建一個新的配置文件,內容如下:

interface=wlan0

# Use the nl80211 driver with the brcmfmac driver

driver=nl80211

# This is the name of the network

ssid=YOUR_NETWORK_NAME_HERE

# Use the 2.4GHz band

hw_mode=g

# Use channel 6

channel=6

# Enable 802.11n

ieee80211n=1

# Enable QoS Support

wmm_enabled=1

# Enable 40MHz channels with 20ns guard interval

ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]

# Accept all MAC addresses

macaddr_acl=0

# Use WPA authentication

auth_algs=1

# Require clients to know the network name

ignore_broadcast_ssid=0

# Use WPA2

wpa=2

# Use a pre-shared key

wpa_key_mgmt=WPA-PSK

# The network passphrase

wpa_passphrase=YOUR_NEW_WIFI_PASSWORD_HERE

# Use AES, instead of TKIP

rsn_pairwise=CCMP

配置完成後,我們需要告訴dhcpcd在系統啟動運行時到哪裡尋找配置文件。 使用sudo nano。

5. 配置 Dnsmasq

自帶的 dnsmasp 配置文件包含很多信息方便你使用它,但是我們不需要那麼多選項,我建議把它移動到別的地方(而不要刪除它),然後自己創建一個新文件:

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

sudo nano /etc/dnsmasq.conf

粘貼下面的信息到新文件中:

interface=wlan0 # Use interface wlan0

listen-address=192.168.1.1 # Explicitly specify the address to listen on

bind-interfaces # Bind to the interface to make sure we aren't sending things elsewhere

server=8.8.8.8 # Forward DNS requests to Google DNS

domain-needed # Don't forward short names

bogus-priv # Never forward addresses in the non-routed address spaces.

dhcp-range=192.168.1.50,192.168.1.100,12h # Assign IP addresses in that range with a 12 hour lease time

6. 設置 ipv4 轉發

最後我們需要做的事就是配置包轉發,用 sudo nano /etc/sysctl.conf命令打開sysctl.conf文件,將包含net.ipv4.ip_forward=1的那一行之前的#號刪除,它將在下次重啟時生效。

我們還需要給連接到樹莓派的設備通過 WIFI 分享網際網路連接,做一個 wlan0和eth0之間的 NAT。我們可以參照下面的腳本來實現。

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT

sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

我命名這個腳本名為 hotspot-boot.sh,然後讓它可以執行:

sudo chmod 755 hotspot-boot.sh

該腳本應該在樹莓派啟動的時候運行。有很多方法實現,下面是我實現的方式:

把文件放到/home/pi/scripts目錄下。

輸入sudo nano /etc/rc.local命令編輯rc.local文件,將運行該腳本的命令放到exit 0之前。(更多信息參照這裡[17])。

編輯後rc.local看起來像這樣:

#!/bin/sh -e

#

# rc.local

#

# This script is executed at the end of each multiuser runlevel.

# Make sure that the script will "exit 0" on success or any other

# value on error.

#

# In order to enable or disable this script just change the execution

# bits.

#

# By default this script does nothing.

# Print the IP address

_IP=$(hostname -I) || true

if [ "$_IP" ]; then

printf "My IP address is %s\n" "$_IP"

fi

sudo /home/pi/scripts/hotspot-boot.sh &

exit 0

安裝 Samba 服務和 NTFS 兼容驅動

我們要安裝下面幾個軟體來啟用 samba 協議,使文件瀏覽器[18]能夠訪問樹莓派分享的文件夾,ntfs-3g可以使我們能夠訪問移動硬碟中 ntfs 文件系統的文件。

sudo apt-get install ntfs-3g

sudo apt-get install samba samba-common-bin

你可以參照這些文檔[19]來配置 Samba。

重要提示:參考的文檔介紹的是掛載外置硬碟到樹莓派上,我們不這樣做,是因為在這篇文章寫作的時候,樹莓派在啟動時的 auto-mounts 功能同時將 SD 卡和優盤掛載到/media/pi/上,該文章有一些多餘的功能我們也不會採用。

2. Python 腳本

樹莓派配置好後,我們需要開發腳本來實際拷貝和備份照片。注意,這個腳本只是提供了特定的自動化備份進程,如果你有基本的 Linux/樹莓派命令行操作的技能,你可以 ssh 進樹莓派,然後創建需要的文件夾,使用cp或rsync命令拷貝你自己的照片從一個設備到另外一個設備上。在腳本裡我們用rsync命令,這個命令比較可靠而且支持增量備份。

這個過程依賴兩個文件,腳本文件自身和backup_photos.conf這個配置文件,後者只有幾行包含被掛載的目的驅動器(優盤)和應該掛載到哪個目錄,它看起來是這樣的:

mount folder=/media/pi/

destination folder=PDRIVE128GB

重要提示:在這個符號=前後不要添加多餘的空格,否則腳本會失效。

下面是這個 Python 腳本,我把它命名為backup_photos.py,把它放到了/home/pi/scripts/目錄下,我在每行都做了注釋可以方便的查看各行的功能。

#!/usr/bin/python3

import os

import sys

from sh import rsync

'''

腳本將掛載到 /media/pi 的 SD 卡上的內容複製到目的磁碟的同名目錄下,目的磁碟的名字在 .conf文件裡定義好了。

Argument: label/name of the mounted SD Card.

'''

CONFIG_FILE = '/home/pi/scripts/backup_photos.conf'

ORIGIN_DEV = sys.argv[1]

def create_folder(path):

print ('attempting to create destination folder: ',path)

if not os.path.exists(path):

try:

os.mkdir(path)

print ('Folder created.')

except:

print ('Folder could not be created. Stopping.')

return

else:

print ('Folder already in path. Using that instead.')

confFile = open(CONFIG_FILE,'rU')

#重要:: rU 選項將以統一換行模式打開文件,

#所以 \n 和/或 \r 都被識別為一個新行。

confList = confFile.readlines

confFile.close

for line in confList:

line = line.strip('\n')

try:

name , value = line.split('=')

if name == 'mount folder':

mountFolder = value

elif name == 'destination folder':

destDevice = value

except ValueError:

print ('Incorrect line format. Passing.')

pass

destFolder = mountFolder destDevice '/' ORIGIN_DEV

create_folder(destFolder)

print ('Copying files...')

# 取消這行備註將刪除不在源處的文件

# rsync("-av", "--delete", mountFolder ORIGIN_DEV, destFolder)

rsync("-av", mountFolder ORIGIN_DEV '/', destFolder)

print ('Done.')

3. iPad Pro 的配置

因為重活都由樹莓派幹了,文件不通過 iPad Pro 傳輸,這比我之前嘗試的一種方案[20]有巨大的優勢。我們在 iPad 上只需要安裝上Prompt2[21] 來通過 SSH 連接樹莓派就行了,這樣你既可以運行 Python 腳本也可以手動複製文件了。

iPad 用 Prompt2 通過 SSH 連接樹莓派

因為我們安裝了 Samba,我們可以以更圖形化的方式訪問連接到樹莓派的 USB 設備,你可以看視頻,在不同的設備之間複製和移動文件,文件瀏覽器[22]對於這種用途非常完美。(LCTT 譯註:原文視頻丟失。)

4. 將它們結合在一起

我們假設SD32GB-03是連接到樹莓派 USB 埠之一的 SD 卡的卷標,PDRIVE128GB是那個優盤的卷標,也連接到設備上,並在上面指出的配置文件中定義好。如果我們想要備份 SD 卡上的圖片,我們需要這麼做:

給樹莓派加電打開,將驅動器自動掛載好。

連接樹莓派配置好的 WIFI 網絡。

用 Prompt2[23] 這個 app 通過 SSH 連接到樹莓派。

連接好後輸入下面的命令:python3 backup_photos.py SD32GB-03

首次備份需要一些時間,這依賴於你的 SD 卡使用了多少容量。這意味著你需要一直保持樹莓派和 iPad 設備連接不斷,你可以在腳本運行之前通過 nohup命令解決:

nohup python3 backup_photos.py SD32GB-03 &

運行完成的腳本如圖所示

未來的定製

我在樹莓派上安裝了 vnc 服務,這樣我可以通過其它計算機或在 iPad 上用 Remoter App[24]連接樹莓派的圖形界面,我安裝了BitTorrent Sync[25] 用來遠端備份我的圖片,當然需要先設置好。當我有了可以運行的解決方案之後,我會補充我的文章。

你可以在下面發表你的評論和問題,我會在此頁下面回復。

作者:Lenin[26] 譯者:jiajia9linuxer校對:wxy

本文由 LCTT[27] 原創編譯,Linux中國榮譽推出

[12]: https://www.raspberrypi.org/downloads/noobs/

[13]: https://www.raspberrypi.org/documentation/remote-access/ssh/passwordless.md

[14]: https://www.iterm2.com/

[15]: https://www.iterm2.com/

[16]: https://frillip.com/using-your-raspberry-pi-3-as-a-wifi-access-point-with-hostapd/

[17]: https://www.raspberrypi.org/documentation/linux/usage/rc-local.md

[18]: https://itunes.apple.com/us/app/filebrowser-access-files-on/id364738545?mt=8&uo=4&at=11lqkH

[21]: https://itunes.apple.com/us/app/prompt-2/id917437289?mt=8&uo=4&at=11lqkH

[22]: https://itunes.apple.com/us/app/filebrowser-access-files-on/id364738545?mt=8&uo=4&at=11lqkH

[23]: https://itunes.apple.com/us/app/prompt-2/id917437289?mt=8&uo=4&at=11lqkH

[24]: https://itunes.apple.com/us/app/remoter-pro-vnc-ssh-rdp/id519768191?mt=8&uo=4&at=11lqkH

[25]: https://getsync.com/

[27]: https://github.com/LCTT/TranslateProject

推薦文章

將文章分享給朋友是對我們最好的讚賞!

,
同类文章
這輩子一定要去的紅色旅遊景點(如畫風景如歌往事)

這輩子一定要去的紅色旅遊景點(如畫風景如歌往事)

上海灣區,金山如畫, 紅色文化,生生不息。 金山衛抗戰遺址紀念園、初心館、 上海南社紀念館、朱學範故居…… 【回首初心路】紅色旅遊路線 帶您追憶革命事跡,感悟紅色精神! DAY 1 ★ 上午:金山衛抗戰遺址紀念園 初心館 ★ 在金山衛抗戰遺址紀念園緬懷先烈,銘
電動三輪車不過電怎麼修(電動三輪車用久了動力下降怎麼辦)

電動三輪車不過電怎麼修(電動三輪車用久了動力下降怎麼辦)

您在閱讀前請點擊上面的「關注」二字,後續會為您提供更多有價值的相關內容,感謝您的支持。 電動車是一個龐大的「家族體系」,它的成員很多,有為人們提供代步的電動車、電動汽車,也有可以從事貨運的電動三輪車,而貨運和載人不同,代步主要看的是續航和舒適度,電動三輪車貨運,它的動力好不好才是更關鍵。
北京建築大學是市重點大學(歡迎報考北京唯一建築類高校北京建築大學)

北京建築大學是市重點大學(歡迎報考北京唯一建築類高校北京建築大學)

北京建築大學作為北京市唯一一所建築類高校,也是國內唯一一所在未來城市設計領域設有高精尖創新中心的高校,更是國內唯一一所設有建築遺產保護領域一體化人才培養體系的高校!來北京建築大學,這裡不僅有多個教學基地為你提供實踐平臺,更有國家級優秀教學團隊在等著你!北京建築大學教務處副處長兼招生辦公室主任黃鶴與
貴州六盤水必去景點(貴州六盤水六枝特區值得遊玩的旅遊景點自駕遊攻略)

貴州六盤水必去景點(貴州六盤水六枝特區值得遊玩的旅遊景點自駕遊攻略)

#六盤水#六枝特區屬六盤水市轄區域,位於貴州省西部,系三線建設時期由原六枝特區與郎岱縣合併而成。東臨普定、鎮寧兩縣,西接普安、晴隆、水城三地,南連關嶺縣,北靠織金、納雍縣,全區國土面積1799.48平方公裡。六枝特區地處「中國涼都」六盤水市的東大門,長江、珠江水系的分水嶺,大小河流共40餘條,屬亞
灃河區旅遊景點(你的灃河段旅遊攻略出爐)

灃河區旅遊景點(你的灃河段旅遊攻略出爐)

HAAPY SUMMER 臨近暑假了 正是組團出遊的好時候 下面 小編列出一份 灃河段的遊玩攻略 讓你快人一步~ 西鹹新區灃河綠道 位於灃河兩岸 分灃東新城和灃西新城綠道 綠道全長54.5公裡 共有一級驛站兩座 二級驛站四座 三
山姆南京店會員店必買攻略(各城市山姆會員店數量排名)

山姆南京店會員店必買攻略(各城市山姆會員店數量排名)

12月25日,世界零售巨頭沃爾瑪旗下高端商業品牌——山姆會員商店將在重慶禮嘉天街開業。與此同時,有消息透露,杭州第二家山姆會員店將在杭州城北的西子智慧產業園開業待客。 山姆會員店 品質高端,獨樹一幟 山姆會員商店是世界500強企業沃爾瑪旗下的高端會員制商店。消費者須購買超市年卡,
聖安地列斯和自由城對比(聖安地列斯三大城市您想掌管哪個)

聖安地列斯和自由城對比(聖安地列斯三大城市您想掌管哪個)

大家好,我是榴槤科長。本期我們來談談假如您是主角CJ,您會掌管《聖安地列斯》三大城市中的哪一座城市?在《GTA:SA》的地圖設定中,包含了——「洛杉磯、舊金山、拉斯維加斯」,三座城市各有特色,不知道玩家在稱霸《GTA:SA》之後,更願意接手哪一座城呢?下面讓我們來看看吧! 一:洛杉磯 葛洛夫
適合一個人3天旅行的地方(一個人旅行去這20個地方吧)

適合一個人3天旅行的地方(一個人旅行去這20個地方吧)

聚 ° 焦° 麗°江 作者 | 吳小姐 關注我們 【每日分享】 帶你每天了解一個美麗的地方 最實用的攻略一站獲取 還記得有首歌裡唱到「我一個人吃飯旅行到處走走停停」,很多人都會覺得一個人是一件很「孤獨」的事情,但是一個人有一個人的好... 一個人可以瀟瀟灑灑
喜歡身材好愛運動的男(愛運動愛旅行身材好)

喜歡身材好愛運動的男(愛運動愛旅行身材好)

記者 安曉冬 8月4日,由齊魯晚報·齊魯壹點主辦,濟南市婦女聯合會指導的2022首屆「壹點動心·齊魯相親大會」濟南主會場暨第16屆七夕千佛山相親大會正式開幕。 「趁著今天休息,跟媽媽一塊來相親。」這位活潑開朗的89年小姐姐在千佛山相親大會跟媽媽一邊談笑一邊觀看男嘉賓的信息牌。
張家口第二屆旅發大會現場(第三屆張家口市旅發大會)

張家口第二屆旅發大會現場(第三屆張家口市旅發大會)

壩上香飄八月天,白雲綠草染河山。仲夏的壩上張北,繁花似錦,清爽宜人,處處生機盎然。 8月2日,中都原始草原度假村內人山人海,來自全國各地文化旅遊行業的200多位代表和上萬名遊客一道走進這裡,同看京津冀駿馬越野競技,共賞「記憶中都」恢宏文化盛宴。 而距此40公裡外草原天路上則是車