成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

旅行時,如何通過樹莓派和iPad Pro備份圖片

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

[[171733]]

介紹

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

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

  1. 用一臺 iPad pro 而不是一臺筆記本。我喜歡輕裝旅行,我的大部分旅程都是商務相關的(而不是拍攝休閑的),我痛恨帶著個人筆記本的時候還得帶著商務本。而我的 iPad 卻一直帶著,這就是我為什么選擇它的原因。
  2. 用盡可能少的硬件設備。
  3. 設備之間的連接需要很安全。我需要在旅館和機場使用這套設備,所以設備之間的連接需要是封閉而加密的。
  4. 整個過程應該是可靠穩定的,我還用過其他的路由器/組合設備,但是效果不太理想。

設備

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

  1. 9.7 英寸的 iPad Pro,這是本文寫作時最強大、輕薄的 iOS 設備,蘋果筆不是必需的,但是作為零件之一,當我在路上可以做一些編輯工作,所有的重活由樹莓派做 ,其他設備只能通過 SSH 連接就行。
  2. 安裝了 Raspbian 操作系統樹莓派 3(LCTT 譯注:Raspbian 是基于 Debian 的樹莓派操作系統)。
  3. 樹莓派的 Mini SD卡 和 盒子/外殼。
  4. 128G 的優盤,對于我是夠用了,你可以買個更大的。你也可以買個像這樣的移動硬盤,但是樹莓派沒法通過 USB 給移動硬盤提供足夠的電量,這意味你需要額外準備一個供電的 USB hub 以及電纜,這就破壞了我們讓設備輕薄的初衷。
  5. SD 讀卡器
  6. 另外的 SD 卡,我會使用幾個 SD 卡,在用滿之前就會立即換一個,這樣就會讓我在一次旅途當中的照片散布在不同的 SD 卡上。

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

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

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

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

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

一、樹莓派的設置

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

安裝和配置 Raspbian

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

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

  1. sudo apt-get update 
  2. sudo apt-get upgrade 

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

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

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

建立 WPA2 加密的 WIFI AP

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

1. 安裝軟件包

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

  1. sudo apt-get install hostapd 
  2. sudo apt-get install dnsmasq 

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

2. 編輯 dhcpcd.conf

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

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

  1. denyinterfaces wlan0 

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

3. 編輯接口

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

  1. allow-hotplug wlan0 
  2. iface wlan0 inet static 
  3.     address 192.168.1.1 
  4.     netmask 255.255.255.0 
  5.     network 192.168.1.0 
  6.     broadcast 192.168.1.255 
  7. #    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf 

同樣,然后 wlan1 編輯如下:

  1. #allow-hotplug wlan1 
  2. #iface wlan1 inet manual 
  3. #    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 命令創建一個新的配置文件,內容如下:

  1. interface=wlan0 
  2. # Use the nl80211 driver with the brcmfmac driver 
  3. driver=nl80211 
  4. # This is the name of the network 
  5. ssid=YOUR_NETWORK_NAME_HERE 
  6. # Use the 2.4GHz band 
  7. hw_mode=g 
  8. # Use channel 6 
  9. channel=6 
  10. # Enable 802.11n 
  11. ieee80211n=1 
  12. # Enable QoS Support 
  13. wmm_enabled=1 
  14. # Enable 40MHz channels with 20ns guard interval 
  15. ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40] 
  16. # Accept all MAC addresses 
  17. macaddr_acl=0 
  18. # Use WPA authentication 
  19. auth_algs=1 
  20. # Require clients to know the network name 
  21. ignore_broadcast_ssid=0 
  22. # Use WPA2 
  23. wpa=2 
  24. # Use a pre-shared key 
  25. wpa_key_mgmt=WPA-PSK 
  26. # The network passphrase 
  27. wpa_passphrase=YOUR_NEW_WIFI_PASSWORD_HERE 
  28. # Use AES, instead of TKIP 
  29. rsn_pairwise=CCMP 

配置完成后,我們需要告訴dhcpcd 在系統啟動運行時到哪里尋找配置文件。 使用 sudo nano /etc/default/hostapd 命令打開默認配置文件,然后找到#DAEMON_CONF="" 替換成DAEMON_CONF="/etc/hostapd/hostapd.conf"。

5. 配置 Dnsmasq

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

  1. sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig   
  2. sudo nano /etc/dnsmasq.conf   

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

  1. interface=wlan0      # Use interface wlan0 
  2. listen-address=192.168.1.1 # Explicitly specify the address to listen on 
  3. bind-interfaces      # Bind to the interface to make sure we aren't sending things elsewhere 
  4. server=8.8.8.8       # Forward DNS requests to Google DNS 
  5. domain-needed        # Don't forward short names 
  6. bogus-priv           # Never forward addresses in the non-routed address spaces. 
  7. 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。我們可以參照下面的腳本來實現。

  1. sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE   
  2. sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT   
  3. sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT   

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

  1. sudo chmod 755 hotspot-boot.sh 

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

  1. 把文件放到/home/pi/scripts目錄下。
  2. 輸入sudo nano /etc/rc.local命令編輯 rc.local 文件,將運行該腳本的命令放到 exit 0之前。(更多信息參照這里)。

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

  1. #!/bin/sh -e 
  2. # rc.local 
  3. # This script is executed at the end of each multiuser runlevel. 
  4. # Make sure that the script will "exit 0" on success or any other 
  5. # value on error. 
  6. In order to enable or disable this script just change the execution 
  7. # bits. 
  8. By default this script does nothing. 
  9. # Print the IP address 
  10. _IP=$(hostname -I) || true 
  11. if [ "$_IP" ]; then 
  12.   printf "My IP address is %s\n" "$_IP" 
  13. fi 
  14. sudo /home/pi/scripts/hotspot-boot.sh & 
  15. exit 0 

安裝 Samba 服務和 NTFS 兼容驅動

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

  1. sudo apt-get install ntfs-3g 
  2. sudo apt-get install samba samba-common-bin 

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

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

二、 Python 腳本

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

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

  1. mount folder=/media/pi/ 
  2. destination folder=PDRIVE128GB 

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

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

  1. #!/usr/bin/python3 
  2. import os 
  3. import sys 
  4. from sh import rsync 
  5. ''
  6. 腳本將掛載到 /media/pi 的 SD 卡上的內容復制到目的磁盤的同名目錄下,目的磁盤的名字在 .conf文件里定義好了。 
  7. Argument:  label/name of the mounted SD Card. 
  8. ''
  9. CONFIG_FILE = '/home/pi/scripts/backup_photos.conf' 
  10. ORIGIN_DEV = sys.argv[1] 
  11. def create_folder(path): 
  12.     print ('attempting to create destination folder: ',path) 
  13.     if not os.path.exists(path): 
  14.         try:  
  15.             os.mkdir(path) 
  16.             print ('Folder created.'
  17.         except
  18.             print ('Folder could not be created. Stopping.'
  19.             return 
  20.     else
  21.         print ('Folder already in path. Using that instead.'
  22. confFile = open(CONFIG_FILE,'rU')  
  23. #重要:: rU 選項將以統一換行模式打開文件, 
  24. #所以 \n 和/或 \r 都被識別為一個新行。 
  25. confList = confFile.readlines() 
  26. confFile.close() 
  27. for line in confList: 
  28.     line = line.strip('\n'
  29.     try: 
  30.         name , value = line.split('='
  31.         if name == 'mount folder'
  32.             mountFolder = value 
  33.         elif name == 'destination folder'
  34.             destDevice = value 
  35.     except ValueError: 
  36.         print ('Incorrect line format. Passing.'
  37.         pass 
  38. destFolder = mountFolder+destDevice+'/'+ORIGIN_DEV 
  39. create_folder(destFolder) 
  40. print ('Copying files...'
  41. # 取消這行備注將刪除不在源處的文件 
  42. # rsync("-av""--delete", mountFolder+ORIGIN_DEV, destFolder) 
  43. rsync("-av", mountFolder+ORIGIN_DEV+'/', destFolder) 
  44. print ('Done.'

三、iPad Pro 的配置

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

iPad 用 Prompt2 通過 SSH 連接樹莓派

 iPad 用 Prompt2 通過 SSH 連接樹莓派

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

四、將它們結合在一起

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

  1. 給樹莓派加電打開,將驅動器自動掛載好。
  2. 連接樹莓派配置好的 WIFI 網絡。
  3. 用 Prompt2 這個 app 通過 SSH 連接到樹莓派。
  4. 連接好后輸入下面的命令:python3 backup_photos.py SD32GB-03

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

  1. nohup python3 backup_photos.py SD32GB-03 & 

 運行完成的腳本如圖所示

 運行完成的腳本如圖所示

未來的定制

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

 

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

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2019-03-31 08:00:02

樹莓派更新樹莓派 Linux

2019-05-23 14:10:37

SSH樹莓派Linux

2019-08-20 15:38:19

樹莓派Linux

2019-03-23 19:33:14

樹莓派Linux操作系統

2019-03-24 20:30:18

樹莓派Linux

2018-10-15 08:50:55

樹莓派數據自動備份NAS云盤

2020-07-25 09:00:12

樹莓派WiFi相框Linux

2019-03-12 18:33:57

樹莓派Linux

2017-10-09 09:33:55

2022-05-08 09:11:44

WiFi樹莓派GO

2023-08-09 09:00:00

樹莓派物聯網

2021-03-29 21:24:40

樹莓派Linux

2022-02-11 09:24:05

樹莓派OpenWrt固定IP服務

2023-03-21 17:06:24

樹莓派路由器

2018-10-12 11:20:20

樹莓派NAS Linux

2024-03-22 15:28:36

樹莓派Linux

2019-05-24 13:30:57

PiShrink樹莓派Linux

2021-07-25 10:30:04

樹莓派Linux

2015-06-16 10:50:45

2018-05-09 13:03:29

Linux樹莓派顆粒物
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩影音 | 2018天天干天天操 | 欧美日韩久久精品 | 一级免费视频 | 女生羞羞网站 | 久久精品99久久 | 国产一区h | 欧美国产日本一区 | 天天搞天天操 | 人妖av| 国产精品美女久久久久久免费 | www亚洲精品 | 一级aaaaaa毛片免费同男同女 | av免费成人 | 中文字幕一区二区三 | 青青操91 | 91久久| 亚洲一区二区三区福利 | 精品成人一区 | 操亚洲 | 91毛片在线看 | 国产精品国产三级国产aⅴ无密码 | a在线观看 | 精品视频在线观看 | 99爱在线免费观看 | 青青久久| 亚洲福利一区 | 最新av片 | 国产精品久久av | 欧美视频1| cao在线| 狠狠骚| 日本特黄a级高清免费大片 特黄色一级毛片 | 成人欧美一区二区三区在线播放 | 六月成人网 | 久久精品国产精品青草 | 午夜精品久久久久久不卡欧美一级 | 91久久国产综合久久91精品网站 | 亚洲精品成人在线 | 亚洲精品一区二区三区蜜桃久 | 国产综合久久 |