註: 非教學, 純記錄用途作參考用, 不清楚請不要試.. 如有任何意外導致損失本人一概不負責
Router: Buffalo WZR-HP-G300NH2
DD-WRT version: DD-WRT v24SP2-MULTI (06/03/12) std
注: 這是 Aeothos chipset 用的方法
USB storage setup
- 準備已 format USB drive, 插router
- Router GUI:
- Services -> USB -> Enable: Core USB support, USB Storage Support, Automatic Drive Mount;
- Disk Mount Point: /mnt
- [optional] Router GUI: Services -> NAS -> FTP/Samba setup
Enable SSH
- Router GUI: Services -> Services -> Secure Shell -> Enable: SSHd, Password Login (強烈建議disable password login, 轉用 key)
- Router GUI: Administration -> Remote Access -> Enable SSH Management (強烈建議換個 remote port)
Install Optware
(reference: http://www.dd-wrt.com/phpBB2/viewtopic.php?t=86912)
- SSH 入 router
- 準備 USB storage
cd /mnt mkdir /sda_part1 cd /mnt/sda_part1 mkdir etc opt root touch optware.enable chmod 755 etc opt root mkdir opt/lib chmod 755 opt/lib cp -a /etc/* /mnt/sda_part1/etc/ mount -o bind /mnt/sda_part1/etc /etc mount -o bind /mnt/sda_part1/opt /jffs
- 下載並安裝package
cd /tmp wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/libc_0.9.33.2-1_ar71xx.ipk wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/opkg_618-3_ar71xx.ipk ipkg install libc_0.9.33.2-1_ar71xx.ipk opkg_618-3_ar71xx.ipk
注意: 版本可能有變, 需到 http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages 查看最新版本
- 建立設定檔
/etc/opkg.conf
src/gz snapshots http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages dest root /opt dest ram /opt/tmp lists_dir ext /opt/tmp/var/opkg-lists
- **Checkpoint**
umount /jffs mount -o bind /mnt/sda_part1/root /tmp/root mount -o bind /mnt/sda_part1/opt /opt export LD_LIBRARY_PATH='/opt/lib:/opt/usr/lib:/lib:/usr/lib' opkg update
會見到:
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/Packages.gz. Inflating http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/Packages.gz. Updated list of available packages in /opt/tmp/var/opkg-lists/snapshots.
- Router GUI: Administration -> 輸入 Commands 再按 “Save Startup”:
#!/bin/sh sleep 5 if [ -f /mnt/sda_part1/optware.enable ]; then mount -o bind /mnt/sda_part1/etc /etc mount -o bind /mnt/sda_part1/root /tmp/root mount -o bind /mnt/sda_part1/opt /opt else exit fi if [ -d /opt/usr ]; then export LD_LIBRARY_PATH='/opt/lib:/opt/usr/lib:/lib:/usr/lib' export PATH='/opt/bin:/opt/usr/bin:/opt/sbin:/opt/usr/sbin:/bin:/sbin:/usr/sbin:/usr/bin' else exit fi
註: 可能要改做 sleep 10
- 回到SSH,
/mnt/sda_part1/root/.profile
:export LD_LIBRARY_PATH='/opt/lib:/opt/usr/lib:/lib:/usr/lib:/opt/usr/local/lib' export PATH='/sbin:/opt/bin:/opt/usr/bin:/opt/sbin:/opt/usr/sbin:/bin:/usr/bin:/usr/sbin:/opt/usr/local/bin' export PS1='[33[01;31m]u@h [33[01;34m]W $ [33[00m]' export TERMINFO='/opt/usr/share/terminfo'
- reboot
Install rsync
Reference: http://www.dd-wrt.com/wiki/index.php/Rsync_Backup_Server
註: 有點不同..
- 下載並安裝 libc
cd /tmp wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/libc_0.9.33.2-1_ar71xx.ipk opkg install libc_0.9.33.2-1_ar71xx.ipk
注意: 其實跟安裝optware時一樣, 只是今次用opkg 而不是ipkg
- 安裝 rsync:
opkg update opkg install rsync
原本應該設定 /etc/rsyncd.conf
的, 但我發覺這個 rsyn 經常 ignore 我的 config file .. 直接用 ~root
做backup location.. 所以我決定直接在 ~root
放symbolic link 到 USB storage 算了..
後記: 用 non-root account 做backup:
- 修改 /etc/passwd 加 user, 指定 backup 用的 folder 做 home, 如:
myUser:*:1000:1000:My user for rsync:/mnt/sda_part1/rsync/myUser:/bin/sh
這個即是說要加一個user 叫
myUser
, home 是/mnt/sda_part1/rsync/myUser
- 如用 rsync over ssh, 可以將 public key 抄到 user home 的 .ssh folder (當然要先開folder)
chown -R myUser <path_to_user_home>
Backup 方法:
rsync -azv -e "ssh -i <private_key> -p <port>" <from_path> myUser@host:<to_path>
- 請自行研究可用option..
<to_path>
是指 myUser 的 home 之下的 relative path- ssh 的 user 要跟 rsync 的 user 一樣