文章

顯示從 七月, 2013 起發佈的文章

備份 Ubuntu Linux 系統並自動上傳備份檔到另一台 server

備份的基本觀念參考自 Ubuntu 社群文件 BackupYourSystem/TAR

我對 linux 管理以及 shell script 都不是很熟,所以有什麼錯誤觀念請多指教。

TL; DR
#!/bin/bash export timestamp=$(date +"%Y%m%d%H%M%S") tar -cvpzf /tmp/backups/backup_$timestamp.tar.gz --exclude='/tmp/*' --exclude='/more_to_ignore/*' --one-file-system / su - username /bin/bash -c "scp /tmp/backups/backup_$timestamp.tar.gz username@another.server.com:/home/username/backups/backup_$timestamp.tar.gz"
基本想法
用 tar 指令把大部分東西都打包起來用 scp 指令上傳到另一台 server以上步驟寫成 shell script 並用 crontab 自動執行

動手
用 tar 指令把大部分東西都打包起來
參考上述文件,打包的指令如下

tar -cvpzf /tmp/backup.tar.gz --exclude='/tmp/backup.tar.gz' --exclude='/more/path/to/exclude/*' --one-file-system /
有幾個注意事項:

打包的目的檔案一定要被exclude掉,不然會有問題雖然大部分 options 都可以變換順序,但f不行。不過你也可以明確的寫成 tar -cvpz -f ...。好像這樣解釋的蠻不清不楚的,想知道 -cvpzf 跟 --one-file-system 參數在幹嘛、哪些目錄適合 exclude 掉等資訊可以到上述文件看。

問題:權限不足 Permission denied
出現大量的以下訊息

tar: /some/files: Cannot open: Permission denied
我的解法是 sudo su - 成 root 帳號,用 root 身分來打包…

natescherer:apn_on_rails 換到新版 PRX:apn_on_rails 筆記

English version is at Upgrade natescherer:apn_on_rails to new version of PRX:apn_on_rails gem - programming notes

更換的原因
其實PRX本來就是元祖,不過當初要用APN功能的時候,PRX的版本還不支援rails 3,自己也沒有把握能修好,所以就改用了已支援rails 3的fork。

沒想到過了一年多,PRX版已支援rails 3、而且新增了一些我需要的功能;當初選用的folk反而一直沒有更新…,只好再換回來。

重大變更與新功能
PRX版的 send_notifications 方法不接受 array,只能一次寄出所有 unsent新增 APN::App,將cert內容放在資料庫內,可達到一個rails app對應多個ios apps新增 APN::Group(以及 GroupNotification、DeviceGrouping)可以群組發訊息,但對Apple的那段還是一封一封傳,只是我們的rails app不必生一堆notifications而已。

更新步驟
修改 Gemfile 改回
gem 'apn_on_rails'
然後

bundle install
補新版的 migrateions
rails generate apn_on_rails:install
如果遇到名稱衝突,可能要先將舊的改名,跑完再改回來、並把重複的刪掉。README裡有提到migration 002 create_apn_notifications 被手動修改過,可能會造成問題。於果有遇到請參考 Upgrade Notes小節。但他的migrations其實也有寫防呆,應該不會有問題才對(我自己沒遇到問題)。

然後

rake db:migrate
把cert移到資料庫,設定第一個APN::App
把 /config/apple_push_notification_development.pem 跟 apple_push_notification_production 的cert內容移到資料庫內,不知道怎麼搞的可以先參考這篇,但他提供的demo code在rails 3.2不能直接跑,要先解決massive-assignment的問題,不然就自己改寫。

其實cer…