- backup-each-save 20130704.732(in MELPA)
- backup each savepoint of a file
概要
real-auto-save.el と組み合わせるといいです。
あなたは大切なデータを失ってしまったことはないでしょうか?
たとえ毎日 バックアップ をとっていたとしても、
それでも事故ってしまうことがあります。
複数のメディアに日々のバックアップをしていれば
データそのものを失う危険性は限りなく低くなります。
しかし、怖いのは間違って 上書き保存 してしまうことです。
別のコンピュータから古いデータを持って来て上書き保存してしまったり、
2つのコンピュータで別々の変更をしてマージせずに保存してしまったり、
その後でそのデータが自動バックアップされてしまったら…
目も当てられませんね。
そこで、Emacsで編集するファイルに限定されますが、
保存したときにバックアップディレクトリに日時付きで
バックアップしてしまえば、怖いことはありません。
日時付きバックアップとは
たとえばホームディレクトリが/rのとき、
/r/memo/wp/1411020955.org ↓ /r/.emacs.d/backups/r/memo/wp/1411020955.org-141102_101949
のように別な場所に保存されることです。
C-x C-sするたびにバックアップディレクトリにバックアップが保存されるので、
バックアップディレクトリの容量には注意してください。
とはいえ、このEmacs Lispは初出10年前だし、テラバイト時代の今では
高々テキストファイルの逐次バックアップくらいは問題ないです。
auto-save-buffers-enhanced.el(レビュー) や
real-auto-save.el(レビュー) と組み合わせて
自動保存させてしまえばまさに鉄璧です。
日々のバックアップ+リモートバックアップもしてしまえば
災害でパソコンが破壊されてしまってもデータが失われることは
もはや有り得なくなります。
データ消失に対する万全の対策はなによりも安心です。
インストール
パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。
(package-initialize) (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/") ("melpa" . "http://melpa.org/packages/") ("org" . "http://orgmode.org/elpa/")))
初めてbackup-each-saveを使う方は
以下のコマンドを実行します。
M-x package-install backup-each-save
アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。
M-x package-install package-utils (初めてアップグレードする場合のみ) M-x package-utils-upgrade-by-name backup-each-save
設定 141102094122.backup-each-save.el(以下のコードと同一)
;;; バックアップ先 (setq backup-each-save-mirror-location "~/.emacs.d/backups") ;;; バックアップファイルにつけるsuffix (setq backup-each-save-time-format "%y%m%d_%H%M%S") ;;; バックアップするファイルサイズの上限 (setq backup-each-save-size-limit 5000000) ;;; バックアップ作成するファイルを判定 ;; (defun backup-each-save-backup-p (filename) ;; (string-match ;; ;; ファイル名に/sync/が含まれるときのみバックアップする ;; (rx (or "/sync/")) ;; (file-truename filename))) ;; (setq backup-each-save-filter-function 'backup-each-save-backup-p) ;;; すべてのファイルをバックアップする (setq backup-each-save-filter-function 'identity) ;;; 有効化! (add-hook 'after-save-hook 'backup-each-save)
実行方法
$ wget http://rubikitch.com/f/141102094122.backup-each-save.el $ emacs -Q -f package-initialize -l 141102094122.backup-each-save.el
本サイト内の関連パッケージ
- auto-save-buffers-enhanced - Automatically save buffers in a decent way
- real-auto-save - Automatically save your all your buffers/files at regular intervals.
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。