標籤: ubuntu
抓出docker 容器(container) 與volume比較大的log檔案
除非有log備份需要, 否則log太大, 必須抓出來, 然後清 0 (cat /dev/null > xxx.log)
find /docker/images/ -name *.log -ls | sort -r -n -k7
或是
find /docker/images/ -name *.log -type f -size +1000000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'
找出當初docker 容器(container)執行的指令(非compose)
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro assaflavie/runlike <容器名稱>
docker run --rm -i -v /var/run/docker.sock:/var/run/docker.sock nexdrew/rekcod <容器名稱>
但是這種方式屬於 reverse 方式, 跟原本會有一些失真,但真的沒留下當初執行的指令, 也只好使用這種方式了
Linux shell script 關於array陣列用法
定義一個陣列
declare -a source_dirs_weekly=("2-w3-portal" "2-w3-opt" "2-w3-jtrac" "200-printer" "194-easyflow" "229-fileserver")
也可以醬
declare -a source_dirs_weekly=(
"2-w3-portal"
"2-w3-opt"
"2-w3-jtrac"
"200-printer"
"194-easyflow"
"229-fileserver"
)
要取出資料,可以參考以下的設定, 來源為這 https://opensource.com/article/18/5/you-dont-know-bash-intro-bash-arrays

姓林的發明的作業系統(Linux)的壓縮格式xz
nextcloud 上查詢支援onlyoffice的版本
https://apps.nextcloud.com/apps/onlyoffice/releases?platform=14
避免與不相容的版本起衝突
目前2022/5/13 我升級到nextcloud 22.2.7 , 但因為docker上面的onlyoffice 最新的是7.1.0,
onlyoffice 只有支援7.2以上才支援 nextcloud 23 , 所以我就無法升級到nextcloud 23囉
nextcloud 21 反向代理設定
'trusted_proxies' =>
array (
0 => '反向代理server的host ip',
1 => 'docker local ip',
),
'trusted_proxies' => array ( 0 => 'x.x.x.x', 1 => '172.0.0.1/8', ),
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'
2024/10/14
—
記得要先 ssh 登入遠端,像我卡在沒有先登入試試看,忘了輸入yes ,造成sshpass失敗。

rclone gui滿好用的
直接就是web介面, http://ip:5572
rclone rcd --rc-web-gui --rc-addr :5572 --rc-user=admin --rc-pass=password --config=/root/rclone/rclone.conf

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
restic -r <備份倉目錄> forget --prune --keep-last 7