0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Samba ごみ箱を有効にする

0
Posted at

Windows のごみ箱のように Samba 共有のネットワークファイルを削除したらごみ箱に移動します
Sambaの「vfs_recycle」モジュールを使用します
vfs_recycle

Samba 設定

設定ファイルである /etc/samba/smb.conf を編集し ごみ箱 機能を有効化します

bash
sudo vi /etc/samba/smb.conf
smb.conf
[share]
   path = /home/user/share
   writable = yes
   # --- ここからごみ箱設定 ---
   vfs objects = recycle
   recycle:repository = .recycle
   recycle:keeptree = yes
   recycle:versions = yes
   recycle:maxsize = 0
   recycle:touch = yes
   recycle:exclude = *.tmp, ~$*, *.lnk

【主要な設定項目の解説】

  • vfs objects = recycle: ごみ箱機能を有効化します
  • recycle:repository:
    削除したファイルの移動先ディレクトリ名です
    相対パス(例: .recycle)にすると 各共有ディレクトリの直内に自動でフォルダが作成されます
    絶対パス(例: /var/samba/trash/%U)で指定すると 全共有のゴミ箱を1箇所に集約できます
    (%U を入れるとユーザーごとにフォルダが分かれます)
  • recycle:keeptree: yes
    にすると 削除前と同じフォルダ構造(ディレクトリ階層)を維持したまま移動します
  • recycle:versions: yes
    にすると 同名ファイルが削除された際に上書きせず「Copy of ~」のように別名で保存します
  • recycle:maxsize:
    ごみ箱に移動させる対象の最大ファイルサイズ(バイト単位)です
    0 は無制限を意味します
  • recycle:exclude:
    ごみ箱に入れたくない除外ファイルを指定します(例: 一時ファイルなど)

Sambaサービスの再起動

設定を反映させるために Sambaサービスを再起動します

bash
sudo systemctl restart smbd

ごみ箱 不要ファイルの自動削除

ごみ箱内の不要なファイルを自動に1週間で削除したい
ごみ箱(.recycle)内の「作成・更新されてから7日(1週間)以上経ったファイル」を自動で完全削除するために find コマンドと cron(定期実行タスク)を使用します

自動削除を毎日実行するための設定手順です

設定手順

1. 自動削除コマンドの確認

まず、安全のために「ごみ箱フォルダ」がどこにあるかを確認し 以下のコマンドの一部(パス)を書き換えます

bash
# ※ /home/user/share/.recycle の部分は、実際の環境に合わせて変更してください
find /home/user/share/.recycle -type f -mtime +7 -delete
find /home/user/share/.recycle -type d -empty -delete

1行目: 最後に変更されてから7日以上経ったファイル(-type f)を強制削除します
2行目: ファイルが消えて空になったディレクトリ(-type d -empty)を削除し ごみ箱を整理します

2. cron(定期実行)への登録

この処理を毎日自動で実行させるために root権限の crontab に登録します
端末で以下のコマンドを実行します

bash
sudo crontab -e

ファイルの最下行に 以下の設定を追加します

text
# 毎日深夜 3:00 に、7日以上前のゴミ箱ファイルを自動消去する
0 3 * * * find /home/user/share/.recycle -type f -mtime +7 -delete && find /home/user/share/.recycle -type d -empty -delete

3. 設定の保存と終了

nanoエディタの場合: Ctrl + O を押した後に Enter で保存し、Ctrl + X で閉じます
画面に crontab: installing new crontab と表示されれば設定完了です

注意点

いきなり自動削除するのが不安な場合は -delete を外した以下のコマンドを実行してみてください
条件に一致する(削除対象になる)ファイルの一覧だけを画面に表示して確認できます

bash
find /home/user/share/.recycle -type f -mtime +7
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?