samba windows ファイルサーバー構築
なにはともあれ$ sudo apt-get install sambaVPNからつなぐので、hosts allow = で VPNサーバーのIPと、自分あたりを明示しといたらあとは、ココ のまま だけど、Share フォルダー側からのバックアップ、右クリック⇒プロパティ⇒以前のバージョンを使うための snapshot というリンクもつくる(Shadow copyの記述は、ココなどを参考。 それから$ sudo mkdir /var/share $ sudo chmod 777 /var/share $ sudo mkdir /var/snapshot $ sudo chmod 777 /var/snapshot設定ファイルの設定$ sudo cp -a /etc/samba/smb.conf /etc/samba/smb.conf.org $ sudo vi /etc/samba/smb.confで# 25行目あたり追記 unix charset = UTF-8 dos charset = CP932 # 51行目あたり ;interfaces = 127.0.0.0/8 10.0.0.0/24 #これはコメント化して hosts allow = 127.0.0.1 localhost #その他VPNパブリックIPとか # 58行目あたり コメント解除 bind interfaces only = yes #末尾に追加 [share] comment = Data Directories path = /var/share writable = yes guest ok = yes guest only = yes create mode = 0777 directory mode = 0777 share modes = yes browseable = yes vfs objects = shadow_copy2 shadow:snapdir = /var/snapshot shadow:basedir = /var/share shadow:sort = desc
[snapshot]
comment = Snapshot Directories browseable= yes writable = no path = /var/snapshot
これで samba再起動
$ sudo /etc/init.d/smbd restart
ちゃんと穴があいているか確認
$ nmap localhost
どれどれ
PORT STATE SERVICE 139/tcp open netbios-ssn 445/tcp open microsoft-ds
こうなっていればよいかなとりあえず。。。 139、445は、AWSのセキュリティ側の穴もあけて
Windowsからは、
PC>>ネットワークドライブの割り当て>>X: \localhost\share などとすればOK。
バージョン保存
Croneくんにさせるが・・・ まずは、初期ファイルをUpdateする$ DIR=$(TZ=GMT date +@GMT-%Y.%m.%d-%H.%M.%S) $ rsync -av /path/to/data/ /path/to/snapshot/$DIR/
Dailyで実行させる Shellスクリプトを記述 ココを参照して記述しました。sudo vi /etc/cron.daily/snapshotshell新しいファイルができるので#!/bin/sh DIR=$(TZ=GMT date +@GMT-%Y.%m.%d-%H.%M.%S) previous=$(ls -1t /var/snapshot/ | head -1) if [ -z "${previous}" ]; then rsync -a /var/share/ /var/snapshot/$DIR/ else rsync -av --delete --link-dest=/var/snapshot/$previous/ /var/share/ /var/snapshot/$DIR fi意味合いとしては、最新のファイルがあれば、差分コピーするというものです。
Dailyのいつ処理をするのか? というところは、/etc/crontab に記述されている。cron.dailyを実行している行の冒頭が 標準時間で 分・時・日 の記述(*はワイルドカード)なので、そこをイジイジして実行するかしばし待つ。(以下の例は、ログ掃出しも記述の例)# /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `crontab' # command to install the new version when you edit this file # and files in /etc/cron.d. These files also have username fields, # that none of the other crontabs do. SHELL=/bin/zsh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command 17 * * * * root cd / && run-parts --report /etc/cron.hourly 15 11 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) >> /var/log/cron.daily.log 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) #こんな感じにでてくるねー
![]()