備份神器restic必須搭配restic-browser
windows畢竟還是主流,所以在windows上設定restic備份之後,事後要提取還原,windows系統上必須搭配好用的GUI軟體,因此我推薦 https://github.com/emuell/restic-browser
windows畢竟還是主流,所以在windows上設定restic備份之後,事後要提取還原,windows系統上必須搭配好用的GUI軟體,因此我推薦 https://github.com/emuell/restic-browser
公司有追蹤「檔案過期」需求,最方便就是賦予檔案新的屬性—過期日,作為nextcloud粉絲,當然由nextcloud著手,萬幸有個app customproperties能達到要求,最後再寫個程式追查一下資料庫資料表oc_properties 過期日資料,就可以完成系統自動通知功能,定期通知檔案主人快到期,讓主人進行延展或是不再追蹤。
但是該app已經有一陣子沒更新了,不支援nextcloud 25以上版本,有人告知可以小改繼續在25、26版使用,真是幸運,我也依樣畫葫蘆,弄了一個支援25、26的版本來,有興趣的可以按此下載,下載後先解開zip可得tar.gz檔案,再解開放在app目錄,並且確認目錄權限正確後,再次刷新nextcloud 未啟用app列表,即可啟用。
outlook作為麻瓜收發郵件軟體最高殿堂,另存檔案當然只能讓outlook打開,其餘閒雜軟體皆不可冒犯。
某日一麻瓜以附件方式,寄給朋友,豈料朋友並沒有outlook,無法開啟msg格式附件,真是大膽!麻瓜求助郎中,郎中開出一帖msgviewer軟體,該軟體佐以java服用,即可將outlook之msg檔案,轉成eml格式(國際標準rfc822格式),經熬煮60個時辰煉化成eml,檔案寄給朋友,朋友以異端thunderbird軟體開啟,正確無誤。
最近遇到pve重新啟動,所掛載的NFS連線太慢完成,導致pve找不到虛擬主機檔案,造成無法自動啟動錯誤。
解決方式就是讓pve的vm晚一點啟動,指令如下:(紅色為延遲多少秒vm才會開始啟動)
pvenode config set --startall-onboot-delay 60
wordpress 4、5、6這三個大版本,密碼皆使用hash方式加密,若我們忘記管理者帳號密碼,且無法從資料庫看到明碼密碼;此時如果你有資料庫(mariadb)管理者權限那就好辦了,可以先以資料庫的管理者帳號登入,該帳號為整個wordpress資料庫最高權限,而非wordpress管理者帳號;登入後,找出wordpress管理者帳號名稱,然後進行hash密碼加密。
網路上有提供該加密的網站,請google WordPress Password Hash Generator,就可以輕易產出密碼,甚至有些網站還產出SQL語法,修改一下語法內之管理者名稱即可使用,非常方便。
--
--
一直以來公司的通訊錄使用ldap方式獲取。但是ldap缺點有二:
1、若連不上網域伺服器(越南夏天會停電還一次停兩天),就算我們使用outlook時,並不需要用到通訊錄,但outlook還是會一直出現錯誤,解決方式如下:outlook 關於ldap通訊錄的處理經驗。
2、只能在內網使用,筆電拿到公司外就連不上網域主控站,outlook就會開始罵罵號。
這問題我滿頭痛的,好險最近我開始把重心放在nextcloud上,發現可以透過webdav連線方式,從網際網路直接獲取通訊錄以及行事曆,這樣可以解決上面兩個問題;雖然以後多了一個維護的地方,但這可以解決很多麻煩事,而且好處多多,例如可以透過手機、網頁等等多元方式,直接取得聯絡人以及行事曆。
說做就做,我連上公司nextcloud雲端系統後,原本打算一筆一筆「手動」輸入數百筆通訊錄,但是想想還是從三個廠的網域主控站匯出聯絡人比較實在,再由nextcloud提供的匯入功能匯入即可。
nextcloud提供匯入的檔案格式為vcf format,意即VCARD,而且規定要3.0或以上版本才能匯入,格式長這樣:
BEGIN:VCARD VERSION:3.0 FN:william ORG:HT TITLE: TEL;TYPE=WORK: TEL;TYPE=HOME: TEL;TYPE=CELL: EMAIL;TYPE=WORK:william@test.com CATEGORIES:test NOTE: UID:79996fd9-b2d6-1111-111e-85f7cd5896e5 END:VCARD
這種需求當然往github找尋解方,找了很久都是2.0的powershell腳本,後來終於在這裡找到,試跑了一次還ok,就差在沒有使用utf8輸出,匯入nextcloud會有亂碼,因此我改了一下寫法如下:
紅色部分請自行斟酌修改,存成xxx.ps1 並且在powershell裡執行;要注意屬性CATEGORIES,對應到nextcloud的聯絡人群組(Contact Group),這很重要。
<#
.SYNOPSIS
Export AD Users as single vcf file
#>
cls
$filename = "C:\temp\vCards.vcf"
remove-item $filename
Get-ADUser -filter {Enabled -eq $True} -Properties * | where {$_.enabled -eq $true} | Foreach-Object {
$user = $_.sAMAccountName
$email = $_.EmailAddress
$phone = $_.OfficePhone
$name = $_.Name
$short = $_.HomePhone
$mobile = $_.MobilePhone
$sede = $_.physicalDeliveryOfficeName
$ufficio = $_.Department
$qualifica = $_.title
$responsabile = ($_.manager -split ',*..=')[1]
if ($phone -or $email -or $mobile){
write-host $user
# Generate vCard
Add-Content -Encoding UTF8 -Path $filename "BEGIN:VCARD"
Add-Content -Encoding UTF8 -Path $filename "VERSION:3.0"
Add-Content -Encoding UTF8 -Path $filename ("FN:" + $_.cn)
Add-Content -Encoding UTF8 -Path $filename ("ORG:test")
Add-Content -Encoding UTF8 -Path $filename ("TITLE:" + $qualifica)
Add-Content -Encoding UTF8 -Path $filename ("TEL;TYPE=WORK:" + $phone)
Add-Content -Encoding UTF8 -Path $filename ("TEL;TYPE=HOME:" + $short)
Add-Content -Encoding UTF8 -Path $filename ("TEL;TYPE=CELL:" + $mobile)
Add-Content -Encoding UTF8 -Path $filename ("EMAIL;TYPE=WORK:" + $email)
Add-Content -Encoding UTF8 -Path $filename ("CATEGORIES:test")
$notedate = (get-date).ToString('d/MM/yyyy')
Add-Content -Encoding UTF8 -Path $filename ("NOTE:")
Add-Content -Encoding UTF8 -Path $filename ("UID:" + $_.objectGUID )
Add-Content -Encoding UTF8 -Path $filename "END:VCARD" #`r`n"
}
}
前幾週有台測試用的RockyLinux 8硬碟壞了,因此換一顆新的也順便安裝最新的RockyLinux 9.2,沒想到反而造成系統不穩定。
我這三週,換了主板測試;換了CPU測試;換了內存測試;換了硬盤測試,這樣的循環測試,也各經歷了三台主機,但還是出問題,雖說這三台主機都是10年老機器,我不確定是否因為機器老舊RL 9對老機器支援度不高,但可以知道跟掛載有關,只要不掛載,就一切正常。
後來捨棄RL 9.2,重新安裝RL 8.8(之前壞的是8.5),再開啟掛載mount cifs,nfs 功能,一切都正常了。
真是沒想到,Linux也開始不穩定了,希望只是RL9.2會這樣。
nextcloud的背景排程,預設為 AJAX,雖說nextcloud建議使用系統cron,但是nextcloud容器cron是「不啟用」的,每次改用Cron,還要進容器另外處哩,非常麻煩,容器升級又要做一次,折磨人啊 。 久而久之,nextcloud一律使用預設值AJAX,我測試過AJAX不會失敗(私、失敗しないので)。
直到最近我使用nextcloud的看板系統(Deck),需要有「email通知 Deck系統裡 卡片異動通知」之功能,因此AJAX單人用還可以,但公司用我就得改用Cron,可是一想到要進容器啟用cron就覺得好煩,才來才知道我錯了。
原來改用cron意外地簡單!
不管是RockLinux、CentOS還是ubuntu,只要在容器宿主(Host)裡的cron,加上一條指令就完事了。
/usr/bin/docker exec -t -u www-data <容器名稱> php -d memory_limit=512M -f /var/www/html/cron.php
真是太棒了!
以下是排程我建議要執行的
docker exec -t -u www-data nextcloud php occ trashbin:expire --quiet
docker exec -t -u www-data nextcloud php occ versions:expire --quiet
docker exec -t -u www-data nextcloud php -d memory_limit=512M -f /var/www/html/cron.php
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