samba4でゴミ箱

◆◆◆

前からやってみたかったのでサラっとやってみる。

ゴミ箱の作り方

たぶんsambaが2とか3のバージョンのときからあったと思う。

今のバージョンを確認してみる。
psで確認するとsmbdって名前で動いてるから、適当に–versionってやってみる。

$ /usr/sbin/smbd --version
Version 4.11.6-Ubuntu
$

いったんsamba4使ってるから方法探してみると、メモっておられる方がいた。
作者さんありがとう。

共有設定に追記

自分はデータの入ったパーティションを必ず別ディスクにしてる。
dockerっていう領域。

$ df -h | grep docker
/dev/sdb        629G  110G  488G  19% /docker
$

dockerはコンテナと永続化業域が入ってる。

smb.confにはglobal指定と、共有ごとの指定がある。

global指定にはこう足した。

[global]
 vfs objects = recycle

次にdockerのための領域の共有に「recycle」で始まる行をいくつか追記。
ゴミ箱は隠しフォルダにしたかったので、ドットつきのフォルダ名を指定。

[nariDocker]
        comment = naFSlinux nariDocker-SMB
        path = /docker
        public = yes
        browseable = yes
        writable = yes
        create mode = 777
        directory mode = 777
        force user = nari
        force group = nari

        recycle:repository = .recycle
        recycle:versions = yes
        recycle:touch = no
        recycle:touch_mtime = no
        recycle:maxsize = 0
        recycle:exclude = *.tmp *.temp
        recycle:keeptree = yes

ゴミ箱領域を作っておく。
rootで実行。

# cd /docker
# mkdir .recycle
# chmod 0777 .recycle

試す

windowsの画面から/dockerの領域にある「docker-compose.yml」をコピーする。

$ ls -a /docker/docker-compose*
'/docker/docker-compose - コピー.yml'   /docker/docker-compose.yml
$

これをwindowsの画面から削除して.recycleの中見てみると入ってる。

$ ls -a /docker/.recycle/
 .   ..  'docker-compose - コピー.yml'
$

もう1回コピーして削除すると、「Copy #1 of 」がついてもう1つ入ってる。

$ ls -a /docker/.recycle/
 .   ..  'Copy #1 of docker-compose - コピー.yml'  'docker-compose - コピー.yml'
$

ゴミ箱いっぱいにならないようにときどき削除

定期バックアップを自動で動かすと、ゴミ箱にもデータが自然に入っていく。
windowsからやると時間かかることもあるから、linux側のcrontabに削除処理を登録しとく。

月~金曜の昼頃に削除するってことで完了。

59 11 * * 1-5 rm -fR /docker/.recycle/*

コメント

タイトルとURLをコピーしました