2023年8月31日 星期四

利用python將docx中將一些文字修改成另一文字

 import os

from docx import Document

from docx.shared import Pt

from docx.oxml.ns import qn


def replace_text_in_docx(file_path, old_text, new_text):

    doc = Document(file_path)

    font_name = "標楷體"

    font_size = Pt(14)

    

    for para in doc.paragraphs:

        if old_text in para.text:

            para.text = para.text.replace(old_text, new_text)

            for run in para.runs:

                run.font.name = font_name

                run.font.size = font_size

                run._element.rPr.rFonts.set(qn('w:eastAsia'), font_name)

    

    for table in doc.tables:

        for row in table.rows:

            for cell in row.cells:

                if old_text in cell.text:

                    cell.text = cell.text.replace(old_text, new_text)

                    for para in cell.paragraphs:

                        for run in para.runs:

                            run.font.name = font_name

                            run.font.size = font_size

                            run._element.rPr.rFonts.set(qn('w:eastAsia'), font_name)

    

    doc.save(file_path)


folder_path = r'G:\test'  # 修改為你的資料夾路徑

replacements = [

    ('科室主管', '部門主管'),

    ('機關首長', '單位(副)主管')

]


for root, dirs, files in os.walk(folder_path):

    for file in files:

        if file.lower().endswith('.docx'):

            file_path = os.path.join(root, file)

            for old_text, new_text in replacements:

                replace_text_in_docx(file_path, old_text, new_text)

            print(f"Modified {file_path}")


print("Replacement completed.")

--------------------------------------------------------------------------
需使用python-docx模組來讀取和修改.docx檔案的內容,可以使用pip install python-docx來安裝

2023年8月25日 星期五

windows 11 hyper-v nested(巢狀虛擬化)

 

  1. 1.Open Start.

  2. 2.Search for PowerShell, right-click the top result, and select the Run as administrator option.

  3. 3.Type the following command on PowerShell to enable Hyper-V on Windows 11 and press Enter:

    DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V
  4. 4.Type “Y” to restart your computer.


Windows Hper-v install ESXi, stop on "Relocating modules and starting up the kernel"

開機時在畫面倒數時按住SHIFT+O,鍵入 ignoreHeadless = TRUE 再按ENTER即可

找出在 Windows 系統上使用 6680 端口的軟體

 要找出在 Windows 系統上使用 6680 端口的軟體,你可以使用一些網絡工具來進行端口掃描和識別。一個常用的工具是 "netstat" 命令列工具。以下是在 Windows 上使用 netstat 來查找使用 6680 端口的程式的步驟:


1. 開啟命令提示字元(CMD):

   - 按下 `Win + R` 鍵,輸入 "cmd",然後按下 Enter 鍵,開啟命令提示字元視窗。


2. 輸入以下命令並按 Enter:


   netstat -ano | findstr :6680



   這個命令將列出所有正在使用 6680 端口的連線,並顯示與每個連線相關的進程 ID(PID)。


3. 尋找進程 ID(PID):

   在命令輸出中,你會看到一列進程 ID(PID)。要尋找與特定 PID 相關聯的程式,可以打開工作管理員:


   - 按下 `Ctrl + Shift + Esc` 組合鍵,打開工作管理員。

   - 在工作管理員的選單中,選擇 "視圖"(View)> "選取欄位"(Select Columns)。

   - 在彈出的視窗中,選中 "進程 ID"(Process ID)複選框,然後點擊 "確定"。

   - 現在你應該能夠在工作管理員中看到 "PID" 欄位。


4. 在工作管理員中尋找進程:

   找到具有與 netstat 輸出中的 PID 相匹配的進程。這將幫助你確定哪個程式在使用 6680 端口。


請注意,有時候某些程式可能使用特定端口進行區域網通訊或臨時連線,所以並不是所有的進程都是潛在的安全風險。確保你知道哪些程式在使用特定端口之前,再進行任何進一步的操作。如果你發現不認識的程式在使用該端口,可以進行更詳細的調查以確定其來源和用途。

2023年8月17日 星期四

在 LibreOffice Writer 中製作一個按鈕,使其在按下後會在滑鼠位置顯示 "Hello 您好"

 在 LibreOffice Writer 中製作一個按鈕,使其在按下後會在滑鼠位置顯示 "Hello 您好",可以按照以下步驟進行:


1. **建立按鈕**:

   - 開啟 LibreOffice Writer。

   - 在選單列中,選擇 `檢視` > `表單控制項` > `推動按鈕(Button)`,然後在你想要按鈕出現的位置,畫一個按鈕。


2. **編輯按鈕屬性**:

   - 右鍵點擊繪製的按鈕,選擇 "控制項屬性(Control)" > ,以打開 "按鈕屬性(Button Properties)" 對話框。

   - 在 "一般(General)" 選項卡中,你可以設定按鈕的標籤(顯示的文字),例如 "點擊顯示問候"。


3. **新增巨集**:

   - 在 "屬性" 對話框中,切換到 "執行動作" 選項卡,選擇 "指派巨集(Edit Macro)"。


4. **編寫巨集程式碼**:

   - 在巨集編輯器中,你可以編寫按下按鈕後要執行的操作的巨集程式碼。以下是一個示例巨集程式碼,用於在滑鼠位置顯示 "Hello 您好"。


Sub ShowGreetingAtMousePosition

    Dim oDoc As Object

    Dim oViewCursor As Object

    Dim oTextCursor As Object

    Dim oText As Object


    oDoc = ThisComponent

    oViewCursor = oDoc.CurrentController.getViewCursor()

    oTextCursor = oViewCursor.getText().createTextCursorByRange(oViewCursor)

    oText = oDoc.Text


    oText.insertString(oTextCursor, "Hello 您好", False)

End Sub



5. **關聯巨集與按鈕**:

   - 在巨集編輯器中,將上述示例巨集程式碼複製並貼上到巨集編輯器視窗中。

   - 關閉巨集編輯器。

   - 回到 Writer 文件,確保按鈕已被選取。

   - 在 "按鈕屬性" 對話框中,切換到 "事件(Events)" 選項卡。

   - 在 "滑鼠按下(Mouse Button Pressed)" 事件下拉選單中,選擇你剛剛建立的巨集(例如 "ShowGreetingAtMousePosition")。


6. **測試按鈕**:

   - 關閉 "按鈕屬性" 對話框。

   - 點擊你創建的按鈕。你應該會在滑鼠位置看到顯示 "Hello 您好"。

在 LibreOffice Calc 中製作一個按鈕,然後新增一個巨集以在按下按鈕時,在儲存格 A1 中顯示 "Hello 您好"

 在 LibreOffice Calc 中製作一個按鈕,然後新增一個巨集以在按下按鈕時,在儲存格 A1 中顯示 "Hello 您好",請按以下步驟進行:


1. **建立按鈕**:

   - 開啟 LibreOffice Calc。

   - 在選單列中,選擇 `檢視(View)` > `工具列(Toolbars)` > `表單控制項(Form Controls Toolbar)`,以顯示 "表單控制項"。

   - 在控制項工具列中,找到並點擊 "推動按鈕(Insert Button)" 圖示。然後在你想要按鈕出現的位置,畫一個矩形。


2. **編輯按鈕屬性**:

   - 在設計模式下繪製按鈕的過程中,在按鈕右鍵選控制項屬性會彈出一個對話框。在這個對話框中,你可以設定按鈕的文字、提示等屬性。在 "標題(B)" 欄位中輸入你想要顯示在按鈕上的文字,例如 "點擊顯示問候"。


3. **新增巨集**:

   - 確保你的按鈕已經選取(點擊它一次)。

   - 在選單列中,選擇 `工具(Tools)` > `巨集(Macros)` > `編輯巨集(Edit Macros)`。這將打開一個巨集編輯器。


4. **編寫巨集程式碼**:

   - 在巨集編輯器中,你可以編寫按下按鈕後要執行的操作的巨集程式碼。以下是一個示例巨集程式碼,用於在按下按鈕時,在儲存格 A1 中顯示 "Hello 您好"。


Sub ShowGreeting

    Dim oSheet As Object

    Dim oCell As Object


    oSheet = ThisComponent.Sheets(0) ' 可能需要調整工作表索引

    oCell = oSheet.getCellByPosition(0, 0) ' A1 儲存格


    oCell.setString("Hello 您好")

End Sub



5. **關聯巨集與按鈕**:

   - 在巨集編輯器中,複製上述示例巨集程式碼,並將其貼上到巨集編輯器視窗中。

   - 關閉巨集編輯器。

   - 回到你的工作表,確保按鈕已被選取。

   - 在工具列上選擇 `表單控制項(Form Controls Toolbar)`。

   - 點擊 此按鈕右鍵選控制項屬性,選動作在執行動作(B)右邊...點選指派中執行動作選巨集找出巨集名稱。

   - 在 "巨集" 下拉選單中,選擇你剛剛建立的巨集(例如 "ShowGreeting")。

   


6. **測試按鈕**:

   - 在表單控制項中關閉設計模式。

   - 點擊你創建的按鈕。你應該會在儲存格 A1 中看到顯示 "Hello 您好"。


請注意,上述步驟可能因為你的特定版本或設定而有所不同,但整體來說,這是在 LibreOffice Calc 中建立按鈕並新增巨集的一般過程。你可能需要根據你的實際情況進行一些調整。

2023年8月16日 星期三

如何在libreoffice calc 將欄位前後空白處刪除

 

  1. 開啟您的Calc文件。

  2. 選擇您想要進行操作的欄位。

  3. 點擊菜單中的 "編輯"。

  4. 從下拉菜單中選擇 "尋找和取代"(或使用快捷鍵 Ctrl + H)。

  5. 在 "尋找和取代" 對話框中,切換到 "其他選項" 選項卡。

  6. 在 "尋找" 欄位中輸入 ^[:space:]+|[:space:]+$。這個正則表達式將匹配字串開頭和結尾的所有空白字符。

  7. 或者使用^\s+|\s+$。這個正則表達式將匹配字串開頭和結尾的所有空白字符。

  8. 在 "取代" 欄位中不要輸入任何內容,保持空白。

  9. 在其他選項中選常規表述式

  10. 點擊 "全部取代" 按鈕

2023年8月2日 星期三

本地一鍵安裝ChatGPT,無需API密鑰、無需ChatGPT帳戶,即裝急用!

 1.下載並安裝docker

2.使用開源項目 https://github.com/pengzhile/pandora

3.一鍵安裝命令

 docker pull pengzhile/pandora

 docker run  -e PANDORA_CLOUD=cloud -e PANDORA_SERVER=0.0.0.0:8899 -p 8899:8899 -d pengzhile/pandora


=======================================================

下載並安裝docker

第一條命令:docker pull ramonvc/freegpt-webui

第二條命令:docker run -p 1338:1338 ramonvc/freegpt-webui

Github地址:https://github.com/ramonvc/freegpt-webui





ubuntu 22.04.1 install zabbix 6.4_nginx

 ubuntu 22.04.1 install zabbix 6.4_ngnix


設定固定IP

1.sudo nano /etc/netplan/00-installer-config.yaml

設定固定IP


network:

  version: 2

  ethernets:

    ens32:

      dhcp4: false

      addresses: [192.168.0.50/24]

      routes:

      - to: default

        via: 192.168.0.1

      nameservers:

        addresses: [1.1.1.1,8.8.8.8]


重啟網路設定

sudo netplan apply


更新系統及軟體

sudo apt-get update && sudo apt-get upgrade -y


更改系統的時區

看目前時區

timedatectl


修改時區

sudo timedatectl set-timezone Asia/Taipei


安裝NTP同步時間

sudo apt install -y ntp

sudo systemctl start ntp

sudo systemctl enable ntp

------------------------------------------------------

下載Zabbix-Nginx安裝包

sudo wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb


sudo dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb

sudo apt update


sudo apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent mysql-server


# mysql --version

# sudo systemctl start mysql.service

# sudo systemctl enable mysql.service


sudo mysql -uroot


# ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '1qaz2wsx';


exit;


sudo mysql_secure_installation


Securing the MySQL server deployment.


Enter password for user root:


VALIDATE PASSWORD COMPONENT can be used to test passwords

and improve security. It checks the strength of password

and allows the users to set only those passwords which are

secure enough. Would you like to setup VALIDATE PASSWORD component?


Press y|Y for Yes, any other key for No: n

Using existing password for root.

Change the password for root ? ((Press y|Y for Yes, any other key for No) : n


... skipping.

By default, a MySQL installation has an anonymous user,

allowing anyone to log into MySQL without having to have

a user account created for them. This is intended only for

testing, and to make the installation go a bit smoother.

You should remove them before moving into a production

environment.


Remove anonymous users? (Press y|Y for Yes, any other key for No) : y

Success.



Normally, root should only be allowed to connect from

'localhost'. This ensures that someone cannot guess at

the root password from the network.


Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y

Success.


By default, MySQL comes with a database named 'test' that

anyone can access. This is also intended only for testing,

and should be removed before moving into a production

environment.



Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y

- Dropping test database...

Success.


- Removing privileges on test database...

Success.


Reloading the privilege tables will ensure that all changes

made so far will take effect immediately.


Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y

Success.


All done!


mysql -uroot -p


# mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;

# mysql> create user zabbix@localhost identified by '1qaz2wsx';

# mysql> grant all privileges on zabbix.* to zabbix@localhost;

# mysql> set global log_bin_trust_function_creators = 1;

# mysql> SHOW VARIABLES LIKE 'char%';

# mysql> SHOW VARIABLES LIKE 'collation%';

# mysql> quit;


sudo zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix


mysql -uroot -p

mysql> set global log_bin_trust_function_creators = 0;

mysql> quit;



sudo nano /etc/zabbix/zabbix_server.conf

修改

DBPassword=1qaz2wsx


sudo nano /etc/zabbix/nginx.conf

  listen          80;

  server_name     192.168.137.243;--zabbix server ip



sudo systemctl restart zabbix-server zabbix-agent nginx php8.1-fpm

sudo systemctl enable zabbix-server zabbix-agent nginx php8.1-fpm

http://IP --設定一些規則

http://IP Admin--zabbix  --登入

---------------------------------------------------------

sudo nano /usr/share/zabbix/include/locales.inc.php #打開此文件確認中文已經打開顯示(true)

'zh_TW' => ['name' => _('Chinese (zh_TW)'),     'display' => true],


sudo apt install -y language-pack-zh-hant language-pack-zh-hans #安裝中文


sudo nano /etc/environment 

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"

添加以下2行

LANG="zh_TW.UTF-8"

LANGUAGE="zh_TW:zh:en_US:en"


sudo dpkg-reconfigure locales 


sudo systemctl restart zabbix-server zabbix-agent nginx php8.1-fpm


---------------------------------------------------------

find / -name fonts 

cd /usr/share/zabbix/assets/fonts

ls

graphfont.ttf


sudo wget https://alist.yyzq.cf/d/%20%E6%9C%AC%E5%9C%B0%E7%BD%91%E7%9B%98/software%20/fonts/simkai.ttf #下載新字體

sudo mv graphfont.ttf graphfont.ttfbak #備份原字體

sudo mv simkai.ttf graphfont.ttf #使用新字體


sudo systemctl restart zabbix-server zabbix-agent nginx php8.1-fpm

---------------------------------------------------------



資料庫出現

mysql -uroot -p

Enter password:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'


解決辦法

sudo mysql -u root # I had to use "sudo" since it was a new installation


mysql> USE mysql;

mysql> SELECT User, Host, plugin FROM mysql.user;

+------------------+-----------+-----------------------+

| User             | Host      | plugin                |

+------------------+-----------+-----------------------+

| debian-sys-maint | localhost | caching_sha2_password |

| mysql.infoschema | localhost | caching_sha2_password |

| mysql.session    | localhost | caching_sha2_password |

| mysql.sys        | localhost | caching_sha2_password |

| root             | localhost | auth_socket           |

| zabbix           | localhost | caching_sha2_password |

+------------------+-----------+-----------------------+

As you can see in the query, the "root" user is using the "auth_socket" plugin.


sudo mysql -u root # I had to use "sudo" since it was a new installation


mysql> USE mysql;

mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';

mysql> FLUSH PRIVILEGES;

mysql> exit;


sudo systemctl restart mysql.service


-----------------------------------------------------

sudo apt update出現

Failed to fetch http://tw.archive.ubuntu.com/dists/jammy/InRelease


1.先ping tw.archive.ubuntu.com 是否又問題

2.如果無法ping到,修改source.list

3.cd /etc/apt

4.cp sources.list sources.list.bak

5.sudo nano sources.list

將全部http://tw.archive.ubuntu.com 改成http://archive.ubuntu.com/ubuntu/  存檔

6.再執行一次sudo apt update 

----------------------------------------------------------

linux agent 安裝

安裝ubuntu22.04.1後

到https://www.zabbix.com/download?zabbix=6.4&os_distribution=ubuntu&os_version=22.04&components=agent_2&db=&ws=

看如何安裝,注意執行動作前要記得核對版本喔!!

wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb

sudo dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb

sudo apt update


安裝 Zabbix Agent2

sudo apt install zabbix-agent2 zabbix-agent2-plugin-*


修改參數

sudo nano /etc/zabbix/zabbix_agent2.conf

Server、ServerActive 2選1

Server=192.168.137.243   ---被動提供資料給zabbix server

ServerActive=127.0.0.1   ---主動提供資料給zabbix server

Hostname=192.168.137.33  ---被監控主機IP或名稱


因為剛有調整參數,所以必須重啟服務

sudo systemctl restart zabbix-agent2 


設定開機啟動

sudo systemctl enable zabbix-agent2







免費的 Let's Encrypt 憑證,如何使用

 免費的 Let's Encrypt 憑證,如何使用


要使用 Let's Encrypt 憑證來為您的 Zabbix Server 提供 HTTPS 連接,您需要遵循以下步驟:


1. 在 Zabbix Server 上安裝 certbot 工具。Certbot 是一個由 Let's Encrypt 提供的免費工具,可以自動獲取和安裝 SSL/TLS 憑證。


您可以使用以下命令在 Ubuntu 上安裝 certbot:


sudo apt-get update

sudo apt-get install certbot


2. 啟用 certbot 來獲取 Let's Encrypt 憑證。輸入以下命令:


sudo certbot certonly --standalone -d example.com


請將 example.com 替換為您的域名或 IP 地址。


3. 完成認證流程。Certbot 將會自動向 Let's Encrypt 伺服器發送認證請求,並在成功認證後,將 SSL/TLS 憑證和相關檔案下載到 /etc/letsencrypt/live/example.com 目錄中。


4. 編輯 Zabbix Server 的配置文件 /etc/zabbix/zabbix_server.conf,找到並修改以下內容:


# 設置 Zabbix Server 使用 HTTPS 連接,啟用 SSL/TLS 加密

TLSConnect=psk

TLSAccept=psk

TLSCAFile=/etc/letsencrypt/live/example.com/chain.pem

TLSCertFile=/etc/letsencrypt/live/example.com/cert.pem

TLSKeyFile=/etc/letsencrypt/live/example.com/privkey.pem


請替換上述路徑為您實際安裝 SSL/TLS 憑證的路徑。


5. 重啟 Zabbix Server 服務以應用更改:


sudo systemctl restart zabbix-server


現在,您已經成功地使用 Let's Encrypt 憑證為您的 Zabbix Server 提供了免費的 HTTPS 連接。

zabbix 實現https登入設定

 zabbix 實現https登入設定


要實現 Zabbix 的 HTTPS 登入設定,您需要遵循以下步驟:


1. 確認已經在 Zabbix Server 上安裝了 SSL/TLS 憑證。如果還未安裝,可以使用免費的 Let's Encrypt 憑證進行安裝。


2. 編輯 Zabbix Server 的配置文件 /etc/zabbix/zabbix_server.conf,找到並修改以下內容:


# 設置 Zabbix Server 使用 HTTPS 連接,啟用 SSL/TLS 加密

TLSConnect=psk

TLSAccept=psk

TLSCAFile=/path/to/your/ca.crt

TLSCertFile=/path/to/your/server.crt

TLSKeyFile=/path/to/your/server.key


請替換上述路徑為您實際安裝 SSL/TLS 憑證的路徑。


3. 重啟 Zabbix Server 服務以應用更改:


sudo systemctl restart zabbix-server


4. 確認 Zabbix Web 界面的 Nginx 設置,使其可以使用 HTTPS 連接。找到 Nginx 設置文件 /etc/nginx/sites-available/default,找到以下內容:


listen 80 default_server;


將其修改為:


listen 443 ssl default_server;


接著,在同一個文件中找到以下內容:


server_name example.com;


替換成您的域名或 IP 地址。


最後,在同一個文件中找到以下內容:


ssl_certificate /path/to/your/server.crt;

ssl_certificate_key /path/to/your/server.key;


替換成您實際安裝 SSL/TLS 憑證的路徑。


5. 重啟 Nginx 服務以應用更改:


sudo systemctl restart nginx


現在您已經完成了 Zabbix 的 HTTPS 登入設定,可以使用 HTTPS 連接到 Zabbix Web 界面。

hyper-v 安裝win11安裝docker

 Hyper-v 虛擬機安裝Docker


1.在Hyper-V安裝好win11

2.設定巢狀虛擬化--關閉虛擬機,以系統管理員開啟PowerShell

Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true

停用巢狀虛擬化--關閉虛擬機,以系統管理員開啟PowerShell

Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $false

改變 MAC 位址--關閉虛擬機,以系統管理員開啟PowerShell

Get-VMNetworkAdapter -VMName <VMName> | Set-VMNetworkAdapter -MacAddressSpoofing On

3.下載安裝docker desktop重開機,開機後Docker會啟動發生錯誤

4.去下載程式wsl_update_x64.msi並執行後重啟Docker

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

5.切換windows container

在右下角Docker圖示案又見點選switch to windows containers...

以系統管理員開啟PowerShell執行以下指令會重新開機

Enable-WindowsOptionalFeature -Online -FeatureName containers –All

以系統管理員開啟PowerShell執行以下指令會重新開機

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V –All

6.執行windows docker

docker run mcr.microsoft.com/windows/servercore:ltsc2022



簡易安裝docker zabbix

 Detailed Guide – Method: 1

The example demonstrates how to run Zabbix server with MySQL database support, Zabbix web interface based on the Nginx web server and Zabbix Java gateway.


1. Create network dedicated for Zabbix component containers:

# docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net


2. Start empty MySQL server instance

# docker run --name mysql-server -t \

      -e MYSQL_DATABASE="zabbix" \

      -e MYSQL_USER="zabbix" \

      -e MYSQL_PASSWORD="1qaz2wsx" \

      -e MYSQL_ROOT_PASSWORD="1qaz2wsx" \

      --network=zabbix-net \

      --restart unless-stopped \

      -d mysql:8.0 \

      --character-set-server=utf8 --collation-server=utf8_bin \

      --default-authentication-plugin=mysql_native_password


3. Start Zabbix Java gateway instance

# docker run --name zabbix-java-gateway -t \

      --network=zabbix-net \

      --restart unless-stopped \

      -d zabbix/zabbix-java-gateway:alpine-6.2-latest


4. Start Zabbix server instance and link the instance with created MySQL server instance

# docker run --name zabbix-server-mysql -t \

      -e DB_SERVER_HOST="mysql-server" \

      -e MYSQL_DATABASE="zabbix" \

      -e MYSQL_USER="zabbix" \

      -e MYSQL_PASSWORD="1qaz2wsx" \

      -e MYSQL_ROOT_PASSWORD="1qaz2wsx" \

      -e ZBX_JAVAGATEWAY="zabbix-java-gateway" \

      --network=zabbix-net \

      -p 10051:10051 \

      --restart unless-stopped \

      -d zabbix/zabbix-server-mysql:alpine-6.2-latest


5. Start Zabbix web interface and link the instance with created MySQL server and Zabbix server instances

# docker run --name zabbix-web-nginx-mysql -t \

      -e ZBX_SERVER_HOST="zabbix-server-mysql" \

      -e DB_SERVER_HOST="mysql-server" \

      -e MYSQL_DATABASE="zabbix" \

      -e MYSQL_USER="zabbix" \

      -e MYSQL_PASSWORD="1qaz2wsx" \

      -e MYSQL_ROOT_PASSWORD="1qaz2wsx" \

      --network=zabbix-net \

      -p 80:8080 \

      --restart unless-stopped \

      -d zabbix/zabbix-web-nginx-mysql:alpine-6.2-latest


Zabbix web interface instance exposes 80/TCP port (HTTP) to host machine.



Zabbix server主機安裝Zabbix agent2服務

sudo mkdir /var/lib/docker/volumes/zabbix-agent2-volume

docker volume create zabbix-agent2-volume

docker run -v /etc/localtime:/etc/localtime \

      --name zabbix-agent2 \

      -v zabbix-agent2-volume:/etc/zabbix \

      -e ZBX_HOSTNAME="zabbix-server" \

      -e ZBX_SERVER_HOST="zabbix-server-mysql" \

      -p 10050:10050 \

      -e ZBX_SERVER_PORT=10051 \

      -v /opt/zabbix/agent2/modules:/var/lib/zabbix/modules \

      --privileged \

      --network=zabbix-net \

      --restart unless-stopped \

      -d zabbix/zabbix-agent2:ubuntu-6.0-latest


給/var/run/docker.sock 所有用戶可讀權限(zabbix用戶)

sudo chmod 666 /var/run/docker.sock

ubuntu 22.04 安裝Text Generation WebUI

設定固定IP選1或2

1.sudo nano /etc/netplan/00-installer-config.yaml

設定固定IP


network:

  version: 2

  ethernets:

    ens32:

      dhcp4: false

      addresses: [192.168.0.50/24]

      routes:

      - to: default

        via: 192.168.0.1

      nameservers:

        addresses: [1.1.1.1,8.8.8.8]


重啟網路設定

sudo netplan apply

sudo apt update

sudo apt upgrade


sudo apt install python3-pip python3-numpy python3-requests python3-matplotlib

wget https://github.com/oobabooga/text-generation-webui/releases/download/installers/oobabooga_linux.zip

sudo apt install unzip

unzip oobabooga_linux.zip

cd oobabooga_linux/

chmod +x *.sh

./start_linux.sh

出現 

What is your GPU


A) NVIDIA

B) AMD (Linux/MacOS only. Requires ROCm SDK 5.4.2/5.4.3 on Linux)

C) Apple M Series

D) None (I want to run in CPU mode)


依電腦現狀選擇。


最後出現,表示沒有安裝model

*******************************************************************

* WARNING: You haven't downloaded any model yet.

* Once the web UI launches, head over to the bottom of the "Model" tab and download one.

*******************************************************************



用winscp將Nous-Hermes-13b-Chinese.ggmlv3.q5_K_M.bin 複製到 /xxx/oobabooga_linux/text-generation-webui/models

cd oobabooga_linux/

修改webui.py,修改如下

sudo nano webui.py

填入--auto-devices引數自動分配計算任務給CPU和GPU,gpu-memory設定最多分配2GB VRAM(防止OOM,數值視您的顯卡VRAM而定)--model指定要載入的模型。--chat以聊天模式啟動。--listen則是可從外部網路存取。


於是該段就會變成這樣:


#CMD_FLAGS = '--chat --listen --auto-devices --gpu-memory 2 --model Nous-Hermes-13b-Chinese.ggmlv3.q5_K_M.bin


CMD_FLAGS = '--chat --listen --cpu --model Nous-Hermes-13b-Chinese.ggmlv3.q5_K_M.bin'

./start_linux.sh


開啟瀏覽器大Http://IP:7860

選上面Model看Nous-Hermes-13b-Chinese.ggmlv3.q5_K_M.bin看是否有進入


選上面Chat settings後選Instruction template,在Change this according to the model/LoRA that you are using. Used in instruct and chat-instruct modes.下選ChatGLM 或Chinese-Vicuna-Chat,然後選Text generation在Input即可鍵入想要問的問題


ubuntu 22.04 install phpipam

 


設定固定IP選1或2

1.sudo nano /etc/netplan/00-installer-config.yaml

設定固定IP


network:

  version: 2

  ethernets:

    ens32:

      dhcp4: false

      addresses: [192.168.0.50/24]

      routes:

      - to: default

        via: 192.168.0.1

      nameservers:

        addresses: [1.1.1.1,8.8.8.8]


重啟網路設定

sudo netplan apply


2.設定固定IP

sudo nano /etc/netplan/00-installer-config.yaml

例如:

# This is the network config written by 'subiquity'

network:

  ethernets:

    eth0:

      dhcp4: no

      addresses: [192.168.137.200/24]

      optional: true

      gateway4: 192.168.137.1

      nameservers:

        addresses:[1.1.1.1,8.8.8.8]

  version: 2


重啟網路設定

sudo netplan apply


sudo apt update

sudo apt upgrade

更改系統的時區

看目前時區

timedatectl


修改時區

sudo timedatectl set-timezone Asia/Taipei


安裝NTP同步時間

sudo apt install -y ntp

sudo systemctl start ntp

sudo systemctl enable ntp


sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php

#sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

#sudo add-apt-repository "deb [arch=amd64,arm64,ppc64el] http://mariadb.mirror.liquidtelecom.com/repo/11.1/ubuntu $(lsb_release -cs) main"


sudo apt update

sudo apt upgrade

sudo apt install apache2 mariadb-server php7.2 libapache2-mod-php7.2 php7.2-curl php7.2-mysql php7.2-curl php7.2-gd php7.2-intl php-pear php7.2-imap php-memcache php7.2-pspell php7.2-recode php7.2-tidy php7.2-xmlrpc php7.2-mbstring php7.2-gettext php7.2-gmp php7.2-json php7.2-xml git wget -y


sudo systemctl start apache2

sudo systemctl start mariadb

sudo systemctl enable apache2

sudo systemctl enable mariadb


sudo mysql_secure_installation


mysql -u root -p

create database phpipam;

GRANT ALL on phpipam.* to phpipam@localhost identified by '1qaz2wsx'; 

FLUSH PRIVILEGES;

EXIT;


sudo git clone --recursive https://github.com/phpipam/phpipam.git /var/www/phpipam

sudo cp /var/www/phpipam/config.dist.php /var/www/phpipam/config.php

sudo nano /var/www/phpipam/config.php

$db['host'] = "localhost"; 

$db['user'] = "phpipam"; 

$db['pass'] = "1qaz2wsx"; 

$db['name'] = "phpipam"; 

define('BASE', "/"); 


cd /var/www/phpipam

mysql -u root -p phpipam < db/SCHEMA.sql

sudo chown -R www-data:www-data /var/www/phpipam

sudo chmod -R 755 /var/www/phpipam


設定 Apache 站台,檔案為sudo nano /etc/apache2/sites-enabled/000-default.conf

設定 sites

DocumentRoot /var/www/phpipam 

<Directory /var/www/phpipam>

  Options FollowSymLinks 

  AllowOverride all 

  Order allow,deny 

  Allow from all 

</Directory>


sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load 

sudo a2enmod rewrite


sudo systemctl restart apache2


更改系統的時區

看目前時區

timedatectl


修改時區

sudo timedatectl set-timezone Asia/Taipei


我修改了sudo nano /etc/php/7.2/apache2/conf.d/20-xdebug.ini,並附加了這一行:


date.timezone = Asia/Taipei


請使用瀏覽器連至 http://ip/ ,預設帳號為 Admin,預設密碼為 ipamadmin,即可登入。


卸载 PHP 版本

sudo apt-get remove php8.2

sudo apt-get remove php8.2-*

ubuntu 22.04.1 install zabbix 6.4_apache2

 設定固定IP選1或2

1.sudo nano /etc/netplan/00-installer-config.yaml

設定固定IP


network:

  version: 2

  ethernets:

    ens32:

      dhcp4: false

      addresses: [192.168.0.50/24]

      routes:

      - to: default

        via: 192.168.0.1

      nameservers:

        addresses: [1.1.1.1,8.8.8.8]


network:

  version: 2

  ethernets:

    eth0:

      dhcp4: false

      addresses: [192.168.137.214/24]

      routes:

      - to: default

        via: 192.168.137.1

      nameservers:

        addresses: [1.1.1.1,8.8.8.8]



重啟網路設定

sudo netplan apply


2.設定固定IP

sudo nano /etc/netplan/00-installer-config.yaml

例如:

# This is the network config written by 'subiquity'

network:

  ethernets:

    eth0:

      dhcp4: no

      addresses: [192.168.137.200/24]

      optional: true

      gateway4: 192.168.137.1

      nameservers:

        addresses: [172.30.156.1, 172.30.156.20]

  version: 2


重啟網路設定

sudo netplan apply


更新系統及軟體

sudo apt-get update && sudo apt-get upgrade -y


更改系統的時區

看目前時區

timedatectl


修改時區

sudo timedatectl set-timezone Asia/Taipei


安裝NTP同步時間

sudo apt install -y ntp

sudo systemctl start ntp

sudo systemctl enable ntp

------------------------------------------------------

下載Zabbix-Nginx安裝包

sudo wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb


sudo dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb

sudo apt update


sudo apt -y install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent zabbix-get mysql-server


# mysql --version

# sudo systemctl start mysql.service

# sudo systemctl enable mysql.service


sudo mysql -uroot


# ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '1qaz2wsx';


exit;


sudo mysql_secure_installation


Securing the MySQL server deployment.


Enter password for user root:


VALIDATE PASSWORD COMPONENT can be used to test passwords

and improve security. It checks the strength of password

and allows the users to set only those passwords which are

secure enough. Would you like to setup VALIDATE PASSWORD component?


Press y|Y for Yes, any other key for No: n

Using existing password for root.

Change the password for root ? ((Press y|Y for Yes, any other key for No) : n


... skipping.

By default, a MySQL installation has an anonymous user,

allowing anyone to log into MySQL without having to have

a user account created for them. This is intended only for

testing, and to make the installation go a bit smoother.

You should remove them before moving into a production

environment.


Remove anonymous users? (Press y|Y for Yes, any other key for No) : y

Success.



Normally, root should only be allowed to connect from

'localhost'. This ensures that someone cannot guess at

the root password from the network.


Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y

Success.


By default, MySQL comes with a database named 'test' that

anyone can access. This is also intended only for testing,

and should be removed before moving into a production

environment.



Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y

- Dropping test database...

Success.


- Removing privileges on test database...

Success.


Reloading the privilege tables will ensure that all changes

made so far will take effect immediately.


Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y

Success.


All done!


mysql -uroot -p


# mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;

# mysql> create user zabbix@localhost identified by '1qaz2wsx';

# mysql> grant all privileges on zabbix.* to zabbix@localhost;

# mysql> set global log_bin_trust_function_creators = 1;

# mysql> SHOW VARIABLES LIKE 'char%';

# mysql> SHOW VARIABLES LIKE 'collation%';

# mysql> quit;


sudo zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix


mysql -uroot -p

mysql> set global log_bin_trust_function_creators = 0;

mysql> quit;



sudo nano /etc/zabbix/zabbix_server.conf

修改

DBPassword=Taisugar1


sudo systemctl restart zabbix-server zabbix-agent apache2

sudo systemctl enable zabbix-server zabbix-agent apache2

http://IP/zabbix    Admin--zabbix

---------------------------------------------------------

sudo nano /usr/share/zabbix/include/locales.inc.php #打開此文件確認中文已經打開顯示(true)

'zh_TW' => ['name' => _('Chinese (zh_TW)'),     'display' => true],


sudo apt install -y language-pack-zh-hant language-pack-zh-hans #安裝中文


sudo nano /etc/environment 

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"

添加以下2行

LANG="zh_TW.UTF-8"

LANGUAGE="zh_TW:zh:en_US:en"


sudo dpkg-reconfigure locales 


sudo systemctl restart zabbix-server zabbix-agent apache2


---------------------------------------------------------

find / -name fonts 

cd /usr/share/zabbix/assets/fonts

ls

graphfont.ttf


sudo wget https://alist.yyzq.cf/d/%20%E6%9C%AC%E5%9C%B0%E7%BD%91%E7%9B%98/software%20/fonts/simkai.ttf #下載新字體

sudo mv graphfont.ttf graphfont.ttfbak #備份原字體

sudo mv simkai.ttf graphfont.ttf #使用新字體


sudo systemctl restart zabbix-server.service apache2

---------------------------------------------------------



資料庫出現

mysql -uroot -p

Enter password:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'


解決辦法

sudo mysql -u root # I had to use "sudo" since it was a new installation


mysql> USE mysql;

mysql> SELECT User, Host, plugin FROM mysql.user;

+------------------+-----------+-----------------------+

| User             | Host      | plugin                |

+------------------+-----------+-----------------------+

| debian-sys-maint | localhost | caching_sha2_password |

| mysql.infoschema | localhost | caching_sha2_password |

| mysql.session    | localhost | caching_sha2_password |

| mysql.sys        | localhost | caching_sha2_password |

| root             | localhost | auth_socket           |

| zabbix           | localhost | caching_sha2_password |

+------------------+-----------+-----------------------+

As you can see in the query, the "root" user is using the "auth_socket" plugin.


sudo mysql -u root # I had to use "sudo" since it was a new installation


mysql> USE mysql;

mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';

mysql> FLUSH PRIVILEGES;

mysql> exit;


sudo systemctl restart mysql.service