nextcloud清除垃圾桶與過多的檔案編輯版本

修改 config.php

過了31天清除

 'trashbin_retention_obligation' => 'auto,31',
 'versions_retention_obligation' => 'auto,31',

若使用docker安裝, 建議停用容器內建的排程, 改用外面主機, 設定排程自行刪除垃圾桶

# 停用背景排程
docker exec -t -u www-data <container> php occ config:app:set --value=no files_trashbin background_job_expire_trash

docker exec -t -u www-data nextcloud php occ config:app:set --value=no files_versions background_job_expire_versions
# 停用容器內建排程後,改用外面主機定期清除
docker exec -t -u www-data <container> php occ  trashbin:expire --quiet

rclone 掛載sftp 連線過慢, 因此先用sshfs擋著先

RockyLinux

dnf --enablerepo=powertools -y install fuse-sshfs

以下為自動掛載方式,(這樣不是很安全,用rsa-key方式比較好)

echo 密碼| sshfs -o reconnect -o allow_other -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no 帳號@主機:/來源目錄/ 掛載目錄 -o workaround=rename -o password_stdin

增加效能

 -o Ciphers=aes128-ctr -o Compression=no -o ServerAliveCountMax=100 -o ServerAliveInterval=15 

傳輸過程若出現 transport endpoint is not connected 的錯誤

請試著修改 /etc/fuse.conf , 啟用 user_allow_other 選項

ssh 下指令到遠端主機,可無人值守

  • 跟登入指令很像, 後面接指令即可
 ssh root@10.192.130.146 -p 22 'ls -al'
  • 若需要無人值守, 作法之一(但比較不安全), 安裝sshpass
1. 安裝sshpass
redhat,centos,rockylinux
yum install sshpass
ubuntu
apt-get install sshpass
2. 無人值守
sshpass -p 'password' ssh root@10.192.130.146 -p 22 'ls -al'

CentOS安裝郵件紀錄分析軟體-SendmailAnalyzer

SendmailAnalyzer是老牌軟體了, 分析 maillog 製作成網站, 方便分析 , 軟體還在持續維護中呢

  • 安裝perl套件
yum install perl-CGI perl-CPAN perl-MIME-tools perl-GD*
  • github下載最新版後,安裝,設開機自動啟用
tar xzf sendmailanalyzer-x.x.tar.gz
cd sendmailanalyzer-x.x/
perl Makefile.PL LOGFILE=/var/log/maillog
make && make install
cp start_scripts/sendmailanalyzer.service /lib/systemd/system
  • 設定開機執行
systemctl enable sendmailanalyzer
systemctl start sendmailanalyzer
  • 網站設定
Alias /sareport /usr/local/sendmailanalyzer/www
<Directory /usr/local/sendmailanalyzer/www>
  Options ExecCGI
  AddHandler cgi-script .cgi
  DirectoryIndex sa_report.cgi
  #-- Apache 2.2
  #Order deny,allow
  #Deny from all
  #Allow from 192.168.1.0/24
  #-- Apache 2.4
  Require all denied
  Require ip 192.168.1.0/24
</Directory>
  • 設定cron 定期做快取 cache
    # SendmailAnalyzer log reporting daily cache
    0 1 * * * /usr/local/sendmailanalyzer/sa_cache > /dev/null 2>&1
    # On huge MTA you may want to have five minutes caching
    #*/5 * * * * /usr/local/sendmailanalyzer/sa_cache -a > /dev/null 2>&1
  • 因應logrotate會更換新的maillog, 加上更換maillog之後,重啟 SendmailAnalyzer
vi /etc/logrotate.d/syslog

################
systemctl restart sendmailanalyzer > /dev/null 2>&1 || true
################

這樣就可以透過瀏覽器查看狀態 http(s)://x.x.x.x/sareport/

restic 常用指令

使用情境是依不同系統 , 建立多個備份倉, 一個倉別若要備份不同目錄, 可用tag區分.

備份倉盡量用簡單的方式, 當然也可以掛載sftp ,或是 rclone.

要備份的目錄, 盡量用掛載的, 變成一個目錄, rclone是個好選擇

備份後,執行保留策略(7天或是30天), 備份可以從目錄, 也可以從stdin ,

還原就比較沒甚麼好談的

至於密碼, 我覺得用環境變數就好了, 用檔案存密碼, 我覺得指令看起來好複雜

  • 建立備份倉
export RESTIC_PASSWORD=123456
restic -r <備份倉目錄> init
  • 備份
#Linux
export RESTIC_PASSWORD=123456
restic -r <備份倉目錄> backup <想要備份的目錄>  --cleanup-cache --verbose --verbose >> restic.log 2>&1

#windows powershell
$Env:RESTIC_PASSWORD='password'
restic -r <備份倉目錄> backup <想要備份的目錄> | Out-File C:\temp\files.log -Encoding UTF8
  • 備份(mysql資料庫)
export RESTIC_PASSWORD=123456
mysqldump -u root -p<密碼>  --all-databases -h <主機ip> |  restic --repo <備份倉目錄> backup --stdin --stdin-filename all.sql
  • tag 以上備份可以加上tag區分不同目錄, tag 名稱可以一樣
restic -r <備份倉目錄> backup <想要備份的目錄> --tag:名稱  --cleanup-cache --verbose --verbose >> restic.log 2>&1
  • 查看備份
export RESTIC_PASSWORD=123456
restic -r <備份倉目錄> snapshots
  • 還原指定的snap
export RESTIC_PASSWORD=123456
restic -r <備份倉目錄> restore <snapshots id> --target <要還原的目錄>
  • 備份完畢,刪除過多的備份
export RESTIC_PASSWORD=123456
restic -r <備份倉目錄> forget --prune --keep-daily 7
1 ... 4 5 6 7 8 ... 17