CentOS 更新特定版本APP

上一則文章提到docker必須升級到20.10.6版,但是我刷了yum update發現原本20.10.3要直上 24.x.x版,有點怕怕的,因此希望能更新到20.10.6就好了,爬文之後解答如下:

sudo yum list docker-ce --showduplicates | sort -r
sudo yum install docker-ce-<VERSION_STRING>  docker-ce-cli-<VERSION_STRING>
#一般來說docker-ce與docker-ce-cli版本要一致比較好

gitea(吉茶)需要更新docker版本20.10.6或以上

前陣子我協助機構部門導入git LFS大檔案版本控管,當時希望push資料時,觸發webhooks,執行我寫好的程式進行分析。

我使用gitea內建測試功能,能很順利觸發webhooks,進而執行程式。

可是實作時卻觸發不了,經檢查logs與爬文後,發現docker版本必須大於等於 20.10.6 有作用,我更新到20.10.6之後測試,還是一樣沒用,只好先擺著,希望主機重開後,能有改善,但無論如何,吉茶說要更新我就照作了。

jgit clone專案失敗,原來要把帳號密碼存起來才行

自己寫 java 呼叫 jgit 函式庫clone專案,卻失敗,我看到錯誤訊息是沒有帳號密碼;可是程式明明有輸入帳號密碼,後來爬文才發現我有案子有使用LFS,需要設定快取把帳號密碼儲存起來,否則會一直要求輸入帳號密碼造成程式錯誤。

git lfs 需要2.0或是以上才行

git config --global lfs.cachecredentials

iredmail 1.6.3 設定白名單

幫朋友安裝開源好用的mail server 「iredmail」,若需要加白名單,有兩個方法:

  1. 購買專業版
  2. 下指令
    https://docs.iredmail.org/amavisd.wblist.html
# python wblist_admin.py --list --whitelist
# python wblist_admin.py --list --blacklist
# python wblist_admin.py --add --whitelist 202.96.134.133 john@example.com @test.com @.abc.com
# python wblist_admin.py --add --blacklist 202.96.134.133 john@example.com @test.com @.abc.co

先找出 wblist_admin 在哪個地方,然後加上白名單即可

Podman容器備份

備份手法很多,最簡單就是整個主機定期做快照,加上離線備份,這樣就沒甚麼問題了。
但是我最近思考一件事,若我們想將podman上的容器軟體改成docker或是改回實體機使用, 這樣就比較棘手了。

我自己因為遇到podman storage要改不同位置,依照我以前文章更改storage路徑的做法再改一次路徑,podman居然整個崩潰了,搞到還要執行 podman system reset 才能恢復使用,但是reset後,原本的容器軟體全部出問題,若我有乖乖針對容器軟體進行備份,就不會這麼難堪了,最後只能整個VM還原。

所以我想了又想,覺得還是要直接備份容器的「images」與「volumes」。

爬文爬了幾天,修修改改後,我終於融合一個能備份容器以及其volume的腳本,很適合容器母體(host)為Linux使用,該腳本會備份所有的images、volume與執行容器指令。

按此下載podman容器備份腳本(需要輸入guest/guest,下載後請記得修改開頭幾行之備份路徑)

執行備份,先備份images,然後掃描volume,查詢volume若與images互通款取,也一併備份,最後追蹤最初容器執行之指令,也一併圈禁備份起來。

備份後,每個目錄將包含容器使用之images、volumes與rush.sh(啟用指令)

後來我發現volume很適合restic增量備份方式,可以減少我這腳本full backup很耗空間的作法。

因此又改寫了一份針對volume能增量備份的腳本,兩種可以同時搭配使用,例如每個月一次full backup,剩下的定期每日或每周進行restic備份。

按此下載podman容器使用restic備份腳本(需要輸入guest/guest,下載後請記得修改開頭幾行之備份路徑)

nextcloud 25.0.7 搜尋檔案功能失效

同仁反應搜尋檔案(檔名)失敗,我重開nextcloud沒用,系統剛好出現可以升級到25.0.8訊息,升級後也沒用;我冷靜仔細想想,覺得可能跟檔案快取有關,然後就想到一個神奇的指令,這個指令應該跟資料庫重新作index類似吧。

這個適合「換新container」或一季做一次
docker exec -u www-data -it nextcloud php occ  files:scan --all

#這個適合每天做一次
docker exec -u www-data -it nextcloud php occ  files:scan --unscanned --all

重新scan檔案後,該同仁就可以搜尋到了。

最後我們要讓這個指令在host本體主機上,定期以排程(crontab)方式執行工作:

nextcloud 加速:使用redis

1. 先準備好redis server
如何安裝redis

2.修改nextcloud 設定檔案

docker exec -it nextcloud bash
root@a764952ce51b:/var/www/html# vi config/config.php
###
<?php
$CONFIG = array (
  'htaccess.RewriteBase' => '/',
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'redis' => array(
          'host' => '127.0.0.1',
          'port' => 6379,
  ),
...
...

3. 重啟nextcloud , 然後回到redis 可下指令查看

redis 好像很重要,應該裝一下

redis 很常看到,好多容器都自帶這個服務,說是快取用的;今天問google查一下為何nextcloud很慢,答案都指向redis,因此還是裝一下redis,再來研究怎讓nextcloud使用。

1. 修改容器本體主機 /etc/sysctl.conf

vm.overcommit_memory = 1
net.core.somaxconn = 65535

修改完執行 sysctl -p 讓設定生效。

2. 執行redis(很好運的是,新版本6.2.12 與 7.0.11 一直出現 Fatal: Can’t initialize Background Jobs ,只好降版改用 6.2.11 )

docker run --name redis --restart=always -d -p 6379:6379 --sysctl net.core.somaxconn=511 redis:6.2.11 redis-server

為何sysctl 已經設定 somaxconn,指令還要設定一次? 我也不知道,反正這樣可行,以後有空再說。

nextcloud如何刪除ldap使用者

nextcloud可以連接多個ldap server,這對於IT來說很方便。

隨著時間推移,越來越多使用者離職,帳號設定成停用,當我們確認可以刪除後,nextcloud卻無法正常透過UI介面刪除帳號,這會造成一些困擾;很懶的我後來我爬文,解方居然是下指令才能刪除,更麻煩的是只能一個一個帳號刪除,真真嚇死我。

好險有個神人寫shell script就能批次刪除。

for i in $(php occ ldap:show-remnants | awk -F'| ' '{print $2}'); do
    echo "Delete user: $i"
    php occ user:delete $i
done

因為我用的是容器(docker),指令如下:

for i in $(docker exec -u www-data -it nextcloud php occ ldap:show-remnants | awk -F'| ' '{print $2}'); do
  echo "Delete user: $i"
  docker exec -u www-data -it nextcloud php occ user:delete $i
done

Done.

警告:刪除帳號會導致該帳號所有檔案一併被刪除。

安裝RockyLinux 9 使用mount cifs,nfs 功能造成當機

前幾週有台測試用的RockyLinux 8硬碟壞了,因此換一顆新的也順便安裝最新的RockyLinux 9.2,沒想到反而造成系統不穩定

我這三週,換了主板測試;換了CPU測試;換了內存測試;換了硬盤測試,這樣的循環測試,也各經歷了三台主機,但還是出問題,雖說這三台主機都是10年老機器,我不確定是否因為機器老舊RL 9對老機器支援度不高,但可以知道跟掛載有關,只要不掛載,就一切正常。

後來捨棄RL 9.2,重新安裝RL 8.8(之前壞的是8.5),再開啟掛載mount cifs,nfs 功能,一切都正常了。

真是沒想到,Linux也開始不穩定了,希望只是RL9.2會這樣。

1 2 3 ... 14