FC2ブログ
RSS
Admin
Archives

ぽすといっと

HTML・CSSのメモをぺったぺた。Linuxとかも。なんでもありになってきました。

検索フォーム
カテゴリ
最新記事
プロフィール

nataku

Author:nataku
(X)HTMLやCSSについて気になったこととか。Linuxも加わってなんでもありになってきました。

リンク
twitter
Powered by fc2 blog  |  Designed by sebek
2019.01
01
Category : 書きかけ
Theme : Linux
Genre : コンピュータ

(・3・) ストレージサーバなくなるし
    なんか、代わりのほしいなあ。シャドウコピーとかはそのままで…

みたいな話が投げつけられてきたので。
centos7+samba でつくりませう。


ちなみに新規で立てました。他にもsshとか一部触ってますが
関係ないところは省略してます。


参考サイト様(感謝!)
俺的備忘録 〜なんかいろいろ〜

あとで、加筆修正予定。とりあえずメモを貼っておきます。(2019/01/01)
OS:Centos7.6.1810(2018/12/30)



@GUIインストール(GUI/server)

/ 250GB
/home 10GB
/boot 800MB
/boot/efi 500MB




■ソフトウェア準備

# yum update
# reboot

# yum install samba rsync

# rsync --version
rsync version 3.1.2 protocol version 31

# smbd --version
Version 4.8.3




■selinux設定

//SELINUXの状態確認
# getenforce
Enforcing

//一時無効
# setenforce 0
# getenforce
Permissive

//永続無効 (最終的には)
# vi /etc/selinux/config
SELINUX=disabled




■Firewalld設定
# firewall-cmd --state
running

# systemctl is-enabled firewalld.service
enabled


# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eno1
sources:
services: ssh dhcpv6-client samba
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:


//設定できるサービス名確認
# firewall-cmd --get-services

//sambaを許可
# firewall-cmd --permanent --zone=public --add-service=samba

//設定反映
# firewall-cmd --reload




■samba用ディレクトリ準備

# systemctl enable smb.service
# systemctl enable nmb.service
# systemctl restart smb.service
# systemctl restart nmb.service


■ディレクトリ作成
//shellscript
# mkdir /usr/local/shells/shadow_copy
# mkdir /usr/local/shells/shadow_copy/log
//samba
# mkdir /var/samba/div
# mkdir /var/samba/backup


//ディレクトリ構成
/
├ usr ─ local ─ shells ─ shadow_copy ┬ shadow_copy.sh
│                        └ log(シャドウコピーのログ)

└ var ─ samba ┬ div (データ保存)
          └ backup(shadowcopy)




■samba設定 (パラメータは調整したほうが良さげ)
# cd /etc/samba
# cp -p smb.conf smb.conf.org

// 設定追加
# vi smb.conf

[global]
+ map to guest = bad user(追加/誰でも自由につながるよ)
+ case sensitive = yes (追加/なくても大丈夫。速度安定化?)

+ [div] (追加)
+ comment = シャドウコピー付きファイルサーバ
+ guest account = nobody
+ guest ok = Yes
+ guest only = yes
+ read only = No
+ browseable = yes
+ writable = yes
+ path = /var/samba/div
+ vfs objects = shadow_copy2
+ shadow:basedir = /var/samba
+ shadow:snapdir = /var/samba/backup
+ shadow:sort = desc


# systemctl status smbd.service



■shadowcopy設定

# cd /usr/local/shells/shadow_copy
# touch shadow_copy.sh
# chmod 755 shadow_copy.sh

# vi shadow_copy.sh
=====================================================
#!/bin/sh

# 変数設定
# バックアップ対象ディレクトリ
SAMBA_DIR=/var/samba/div
# バックアップ先ディレクトリ
BACKUP_DIR=/var/samba/backup
# バックアップ先ディレクトリに作成するスナップショットを保有するディレクトリのPATH
SNAPSHOT_DIR=$(TZ=GMT date +@GMT-%Y.%m.%d-%H.%M.%S)
# 最後にバックアップを取得したディレクトリ名を保持しているファイル
LAST_SNAPSHOT_FILE=$BACKUP_DIR/last_snapshot
# ローテーションを行う日程
ROTATE_DATE=30

# ログ用日時出力
echo
echo "[[ $(date) ]]"

# バックアップを実施する
if [ ! -e $LAST_SNAPSHOT_FILE ]; then
mkdir -p $BACKUP_DIR/$SNAPSHOT_MONTH
rsync -av $SAMBA_DIR $BACKUP_DIR/$SNAPSHOT_DIR
echo $SNAPSHOT_DIR > $LAST_SNAPSHOT_FILE
else
LAST_SNAPSHOT_DIR=`cat $LAST_SNAPSHOT_FILE`
mkdir -p $BACKUP_DIR/$SNAPSHOT_MONTH
rsync -av --delete --link-dest=$BACKUP_DIR/$LAST_SNAPSHOT_DIR $SAMBA_DIR $BACKUP_DIR/$SNAPSHOT_DIR
echo $SNAPSHOT_DIR > $LAST_SNAPSHOT_FILE
fi

# バックアップのローテーションを行う
LIST=`ls -1 $BACKUP_DIR | grep GMT`
for s in $LIST
do
DEL_SNAPSHOT_DIRDAY=`echo $s | cut -f2 -d"-" | tr -s "." "/" `
DEL_SNAPSHOT_DIRTIME=`echo $s | cut -f3 -d"-" | tr -s "." ":" `
DEL_SNAPSHOT_DIR=`date -d "$DEL_SNAPSHOT_DIRDAY $DEL_SNAPSHOT_DIRTIME" "+%s"`
NOW_TIME=`date -d "9 hours $ROTATE_DATE days ago" "+%s"`
if [ $DEL_SNAPSHOT_DIR -le $NOW_TIME ]; then
rm -rf $BACKUP_DIR/$s
fi
done
================================================




■crontab設定
//crontab を利用できるか確認
# systemctl status crond

// 7時、12時、15時にシャドウコピー作成
# vi /etc/crontab
0 7,12,15 * * * root /usr/local/shells/shadow_copy/shadow_copy.sh >> /usr/local/shells/shadow_copy/log/shadow_copy.log 2>&1

// log rotate設定
# vi /etc/logrotate/shellscripts
/usr/local/shells/shadow_copy/log/shadow_copy.log
{
missingok
lotate 10
weekly
}

Comment

非公開コメント