FreeBSD

さくらサーバでファイルを自動バックアップ

さくらサーバ上のファイルも増えてきたのでバックアップしておこうかと、簡単なスクリプトを作成。

#!/bin/sh
 
PATH=$HOME/bin:/usr/bin
 
BACKUP_DIR=$HOME/backup
HOLD_DAYS=30
 
cd $BACKUP_DIR
tar zcf backup_`date +"%Y%m%d"`.tar.gz $HOME --exclude $BACKUP_DIR
 
find . -mtime +$HOLD_DAYS -exec rm {} \;
 
sync
 
exit 0


  • 事前に、ホームディレクトリにbackupというディレクトリを作っておく。
  • このディレクトリにtarでホームディレクトリ以下をすべてバックアップする。
  • ただし、backupディレクトリは対象外とする(当然)。
  • シェル変数HOLD_DAYSで指定した日数分だけバックアップファイルを保存する。
  • 保存日数は、ディスクの使用量との兼ね合いで見直す。
  • tarはGNU版を想定。FreeBSD版でもできるのかもしれないけど、未確認。


このスクリプト(とりあえず、mkbackup.shという名前とする)をcronで起動する。こんな感じ。
% crontab -l
SHELL=/bin/sh
PATH=/home/XXX/bin:/home/XXX/etc:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 
# m h dom mon dow command
 
0 4 * * * mkbackup.sh


  • /home/XXXは自分のホームディレクトリ。
  • PATH=$HOME/binのようには書けないらしい(展開してくれない)。




GNU tar インストール on さくらサーバ

tarもGNU版の方がいいなぁ、ってことでインストール。

% wget http://ftp.gnu.org/gnu/tar/tar-1.22.tar.gz
% tar zxvvf tar-1.22.tar.gz
% cd tar-1.22
% ./configure --prefix=$HOME
% make
% make install




lvインストール on さくらサーバ

UTF-8なファイルを扱うことがあるので、lvをインストールしておく。

lvとはUTF-8を含む、各種文字コードに対応したlessみたいな物。
フィルタにもなるので、UTF-8対応のnkfというような使い方も可能。

% wget http://www.ff.iij4u.or.jp/~nrt/freeware/lv451.tar.gz
% tar zxvvf lv451.tar.gz
% cd lv451/src
% ./configure --prefix=$HOME
% make
% make install





sshのセッションが切れる

さくらのサーバをレンタルして、sshで入って使っているのだが、
しばらくほっとくとセッションが切れてしまう。

サーバがタイムアウトで切ってしまうのかと思ったが、そうでもないらしい。

結局のところ、どうやら、ブロードバンドルータの仕業のようである。
仕業というか、要するに、無通信が続くとNATテープルからエントリが消えてしまい、
パケットを送っても届け先不明になってしまうようだ。

sshクライアントにはPuTTYを使っており、これの設定項目を見直したら、

セッションをアクティブに保つためのnullパケットの送信
Keepalives間の秒数(0でオフ)

という項目があった。下図の赤丸のところ。
デフォルトはオフの0になってた。

putty_keepalives
これを上の図のように試しに60にしたところ、セッションが切れなくなった。
めでたし、めでたし。

これを確認した後で、図の緑丸の部分、
Enable TCP keepalives (SO KEEALIVE option)

に気づいたが、未確認。



coreutils インストールon さくらサーバ

さくらのレンタルサーバがFreeBSDなのはいいけど、
やっぱ、基本的なコマンドはGNUのものでないと調子が出ない。

ということで、GNU coreutilsをインストール。
rootにはなれないんで、ホームディレクトリに以下にインストールする。

% wget http://ftp.gnu.org/gnu/coreutils/coreutils-7.4.tar.gz
% cd coreutils-7.4
% ./configure --prefix=$home
% make
% make install


ついでに、~/.cshrcをいじって、コマンドパスの先頭に
~/binが来るようにした。
#set path = (/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin)
set path = ($HOME/bin /sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin)




さくらのレンタルサーバはFreeBSD

普段は自宅サーバを使っているので、レンタルサーバには特に興味がなかった。

が、ちょっとしたオモワクがあって、サーバをレンタルしてみた。

どこにしようかと思ったが、
なんとなく昔から名前を知っていて、かつ、安価なさくらサーバにした。
バックボーンネットワークもしっかりしてそうだし。

スタンダードプランで3GB 500円/月。年払いだと5000円。
この他、入会金が1000円だったかな?

そんでもって、入ってビックリ。

OSはFreeBSDだった。こういうのはLinuxなんだろうと勝手に思い込んでいた。

% uname -srm
FreeBSD 7.1-RELEASE-p5 i386

FreeBSDならそれなりにわかるぞ。
シェルもデフォルトでtcshなのがうれしい。

でも、FreeBSDってことは、viが本当のviなんで、
慣れ親しんだvimをインストールした。
vimといっても、十年来使い込んでる、jvim 3.0だけど。

sshでログインできるし、とりあえず、快適。



FreeBSD: portsでのコンフィグ再設定

FreeBSDのportsでmakeする際にコンフィグレーションの指定画面が出ることがある。

一度インストールしておしまいならいいのだが、設定を変えて再インストールしたいこともある。

単にmakeとしただけでは設定画面が出てこない。make deinstall; makeでもダメ。

調べたところ、

# make config
でいいらしい。

あるいは、編集内容がわかっているのならコンフィグファイルを直接編集するとか。
例えばbind94なら、
# vi /var/db/ports/bind94/options
という感じ。

もしくは、このコンフィグファイルを消してしまえば、
一番最初のmakeのときのようにコンフィグレーション画面が出る。
# rm /var/db/ports/bind94/options
# cd /usr/ports/dns/bind94
# make

portsのmake前に依存関係のある全てのportsをmake configする
http://www.kishiro.com/FreeBSD/make_config_recursive.html

portsの使い方
http://iris.homeunix.net/yayoi/freebsd/basic/ports.asp

CD-ROMからISOイメージを吸い出す

音楽CDだとリッピングツールを使うので、データディスクも何か特殊なツールを使うのだろうと思い込んでしまっていた。
単純にddで吸い出せばOK。盲点だった。

% dd if=/dev/cdrom of=/tmp/cdimage.iso


元ネタ
Create ‘CD or DVD’ ISO image on Linux
http://superlinux.blog50.fc2.com/blog-entry-63.html

|

スポンサードリンク

  • ブログ内検索