by rainchu | 9 月 3, 2024 | AI , MIS , RPA
這次介紹超強大的 RPA,他複雜到需要很多的時間學習才能上手, UiPath 提供一系列機器人自動化工具,幫助個人或企業自動化重複性的辦公室任務,從而提高效率並減少人為錯誤,這次將簡單探討 UiPath 的核心功能、應用案例以及它如何改變企業運作模式。
UiPath 平台概覽
UiPath 提供一個完整的自動化平台,該平台使企業能夠部署虛擬助手(稱為機器人)來自動完成各種工作流程。其核心產品包括 UiPath Studio、UiPath Robots 和 UiPath Orchestrator:
UiPath Studio : 一個直觀的可視化設計工具,允許開發者通過拖放界面來設計自動化流程。
UiPath Robots : 這些是可以執行流程的自動化代理,可以根據指定的規則在背景中或與人類互動中執行任務。
UiPath Orchestrator : 一個中央管理工具,用於部署、監控和管理大規模的機器人部署和工作流程。
應用案例
UiPath 被廣泛應用於多個行業,如金融服務、製造業、健康護理和零售等,解決各種業務問題:
財務與會計 :自動化賬目管理、請款處理和財務報表生成。
人力資源 :簡化招聘流程、員工入職和薪資管理。
客戶服務 :自動回應客戶查詢,改善服務效率和質量。
官網
https://www.uipath.com
中文官網
教學文件
https://www.perform-global.com/blog/uipath-course-note-part1
https://vocus.cc/article/641306c5fd89780001b5c981
by Rain Chu | 3 月 27, 2024 | GCP , MIS
要執行該操作GCP中的執行個體的自動開啟以及自動關閉,您需要給予 Compute Engine System service account(服務帳戶) compute.instances.start
和 compute.instances.stop
權限。
錯誤訊息
Compute Engine System service account [email protected] needs to have [compute.instances.start,compute.instances.stop] permissions applied in order to perform this operation.
以下是需要採取的步驟:
找到 Compute Engine System Service Account
打開 Google Cloud Console。
導航到「IAM & Admin」-> 「IAM」。
在右側的窗口中,勾選「Include Google-provided role grants」(包含 Google 提供的角色授權)。
使用搜尋欄 (Ctrl + F) 並輸入「compute-system」找到服務帳戶。服務帳戶的 email 格式為 [email protected]
。
添加權限
點擊服務帳戶旁邊的鉛筆圖示來編輯。
點擊「ADD ANOTHER ROLE」(新增另一個角色)。
在角色過濾器中,輸入「compute」,並選擇:
Compute Instance Admin (v1) – roles/compute.instanceAdmin.v1
或是更精細的權限如 roles/compute.instanceAdmin
、roles/compute.osAdminLogin
。
點擊「SAVE」(儲存)。
等待權限生效 :
新權限生效可能需要幾分鐘。
重要注意事項:
Compute Engine System Service Account 是一個由 Google 管理的特殊服務帳戶,允許 Compute Engine 在您的專案裡進行必要的配置。避免賦予過廣的權限。
如果您只是需要啟動和停止 VM 的權限,選擇更精細的權限來降低風險。
徹底瞭解要賦予的權限,以及它們可能產生的影響。Google Cloud 的 IAM 文件: https://cloud.google.com/iam/docs/ 提供了角色與權限的詳細說明。
如果是在使用像 Cloud Scheduler 這類的服務來啟動或停止 VM,那麼就是該服務所使用的服務帳戶需要這些權限 。
by Rain Chu | 2 月 6, 2024 | GCP , Linux , MIS , Ubuntu , 未分類
在Ubuntu中要分享硬碟給另一台電腦,通常有兩種方法:使用網絡文件系統(NFS)與 Linux 或使用 Samba 與 Windows 共享。
以下是這兩種方法的步驟:
方法1:使用NFS(適合Linux系統)
安裝NFS服務器:
在提供共享的電腦上,打開終端並輸入以下命令安裝NFS服務器:
sudo apt update
sudo apt install nfs-kernel-server
配置共享目錄:
編輯/etc/exports
文件來添加你想要共享的目錄。例如,如果你想共享/srv/nfs
目錄,可以添加如下行:
/srv/nfs *(rw,sync,no_subtree_check)
其中*
表示所有人都可以訪問,rw
表示讀寫權限,sync
表示同步寫入硬碟,no_subtree_check是速度比較快的選項。
重啟NFS服務:
sudo systemctl restart nfs-kernel-server
在客戶端電腦上安裝NFS客戶端
sudo apt install nfs-common
掛載共享目錄:
sudo mount server_ip:/srv/nfs /mnt
記得把 server_ip 換成你分享主機的 IP
方法2:使用Samba(適用於Windows和Linux系統)
安裝Samba:
在提供共享的電腦上,安裝Samba:
配置Samba共享:
輯Samba配置文件/etc/samba/smb.conf
,在文件末尾添加如下配置:
sudo nano /etc/samba/smb.conf
[ShareName]
path = /srv/samba
read only = no
browsable = yes
請記得替換 ShareName
為你的共享名,/srv/samba
為你想共享的目錄。
重啟Samba服務:
sudo systemctl restart smbd
在另一台Ubuntu上訪問Samba共享:
可以在文件管理器的地址欄輸入 smb://server_ip/ShareName
來訪問共享,其中 server_ip
是Samba服務器的IP地址,ShareName
是你設置的共享名。
Windows 上則是用檔案總管,並且在文字框內輸入 \\server_ip\ShareName
no_subtree_check
參數說明
no_subtree_check
是 NFS(網絡檔案系統)配置中的一個參數,用於改善NFS服務的性能。這個參數的作用與含義如下:
子樹檢查(Subtree Checking): 在NFS中,子樹檢查是一個安全特性,用來確保客戶端訪問的檔案仍然是它最初打開時的那個檔案。這是通過檢查檔案所在的目錄結構來實現的。如果檔案在檔案系統中被移動或重命名,NFS會通過子樹檢查來識別這些改變。
no_subtree_check
的作用: 啟用 no_subtree_check
參數會禁用這種子樹檢查。這意味著NFS服務器不會檢查檔案是否被移動或重命名。這樣做可以提高性能,因為減少了服務器的檢查負擔。在大多數情況下,這是安全的,特別是在檔案不太可能在訪問期間被移動或重命名的環境中。
應用場景: 在許多常規的NFS使用情況下,子樹檢查是不必要的,因為檔案的移動並不頻繁。在這些情況下,禁用子樹檢查可以提供更佳的性能表現,尤其是在處理大量的檔案請求時。
分享文件的安全性設定
要限制特定IP地址的主機才能连接NFS共享,您需要在NFS的配置文件 /etc/exports
中明确指定允许的IP地址。以下是具体步骤:
編輯/etc/exports
檔案:
指定允許的IP地址:
在/etc/exports
檔案中,您可以為每個共享目錄指定允許訪問的IP地址,我們要做的事情是把前面的*號替換成主機的IP。例如,如果您想只允許IP地址為192.168.1.100
的主機訪問名為/srv/nfs
的共享目錄,您可以這樣寫
/srv/nfs 192.168.1.100(rw,sync,no_subtree_check)
這行配置表示僅有IP地址為192.168.1.100
的主機可以讀寫(rw)訪問/srv/nfs
目錄。
您可以精確控制哪些IP地址的主機被允許訪問NFS共享。如果需要允許多個特定的IP地址,只需在/etc/exports
檔案中的相應行裡添加這些IP地址,每個地址用空格分開。例如:
/srv/nfs 192.168.1.100(rw,sync,no_subtree_check) 192.168.1.101(rw,sync,no_subtree_check)
重啟NFS服務:
sudo systemctl restart nfs-kernel-server
開機時自動建立 NFS 連接
可以將 NFS 掛載點添加到客戶端主機的 /etc/fstab
文件中。/etc/fstab
文件用於在系統啟動時自動掛載文件系統。以下是一般步驟:
編輯 /etc/fstab
文件:
添加 NFS 掛載條目:
[NFS 伺服器 IP]:/[遠端共享目錄] [本地掛載點] nfs defaults 0 0
如果 NFS 伺服器的 IP 是 192.168.1.100
,遠端共享目錄是 /exported/folder
,本地掛載點是 /mnt/nfs
,則添加:
192.168.1.100:/exported/folder /mnt/nfs nfs defaults 0 0
測試掛載: 為了檢查是否有語法錯誤,您可以手動掛載所有未掛載的 fstab
條目
其中在 /etc/fstab
文件中,每個掛載點的條目都包含一系列的字段,其中 defaults 0 0
是其中的兩個字段,意思如下
defaults
: 這是掛載選項字段。defaults
代表一組預設的掛載選項。對於大多數文件系統,這包括了 rw
(可讀寫)、suid
(允許執行 suid 程序)、dev
(解析字符和塊特殊裝置)、exec
(允許執行二進制文件)、auto
(允許自動掛載)、nouser
(阻止普通用戶掛載文件系統)、和 async
(進行異步 I/O)等選項。如果需要特定的選項,可以用逗號分隔,直接在這個位置列出。
第一個 0
: 這是 dump
字段。dump
是一個備份實用程序,用來決定文件系統是否需要被備份。如果這個值設置為 0
,則 dump
將忽略這個文件系統。如果設置為 1
或更高的數字,它表示文件系統的備份頻率。
第二個 0
: 這是 fsck
(文件系統檢查)的順序字段。這個數字決定了在啟動時檢查文件系統的順序。如果設為 0
,系統啟動時將不會對這個文件系統進行 fsck
檢查。如果是根文件系統,這個值通常設為 1
;其他文件系統則設為 2
或更高,或者保留為 0
。
總的來說,defaults 0 0
是一個常見的配置,
要將掛載好的硬碟卸載的話
要卸載已經掛載的硬碟,您可以使用 umount
命令
確定掛載點:
卸載硬碟:
例如,如果硬碟掛載在 /mnt/mydisk
,則命令為:
檢查卸載狀態:
可以再次使用 df -h
或 mount
命令來確認硬碟已經被卸載。
解決權限無法讀寫的問題
兩台主機間有不同的帳號,A主機帳號usera,B主機帳號userb,要再b主機修改a主機的資源的話,你會遇到無法執行的問題
可以選擇兩種策略
1.使用群組權限
如果 usera
和 userb
的 UID/GID 不同,您可以通過將它們都加入到同一個群組,並對該群組授予適當的權限來解決問題。
在 A 和 B 主機上創建相同的群組
sudo groupadd sharedgroup
將 usera
和 userb
添加到該群組:
在 A 和 B 主機上分別執行:
sudo usermod -a -G sharedgroup usera
sudo usermod -a -G sharedgroup userb
更改共享目錄的群組權限:
在 A 主機上設置共享目錄的群組為 sharedgroup
,並確保群組具有讀寫權限:
sudo chown usera:sharedgroup /path/to/shared/directory
sudo chmod 2770 /path/to/shared/directory
2. 使用 NFS 伺服器選項映射 UID/GID
可以在 NFS 伺服器的 /etc/exports
文件中使用 all_squash
, anonuid
, 和 anongid
選項來映射所有客戶端用戶到特定的 UID 和 GID。
編輯 /etc/exports
文件
在 A 主機(NFS 伺服器)上編輯此文件,為共享目錄添加以下選項:
/path/to/shared/directory B主機的IP(rw,sync,no_subtree_check,all_squash,anonuid=UID,anongid=GID)
其中,將 UID
和 GID
替換為在 A 主機上 usera
的 UID 和 GID。
UID 和GID的查詢方法如下
就會取得像是 uid=0(root) gid=0(root) groups=0(root)
重啟 NFS 服務:
sudo systemctl restart nfs-server
這樣配置後,所有從 B 主機存取 A 主機共享目錄的操作都將以指定的 UID 和 GID 來執行,從而繞過 UID/GID 不匹配的問題。
GCP 連接外部硬碟
先看配置 df -h ,在用 lsblk 找出要配置的硬碟,通常在 GCP 中新掛的第一顆硬碟代號會是 sdb
如果是全新的硬碟要先格式化他
sudo mkfs.ext4 -m 0 -F -E lazy_itable_init=0,discard /dev/sdb
格式化後,可以開始準備掛載目錄,以及提升權限和下指令掛載
sudo mkdir -p /mnt/data
sudo chmod a+w /mnt/data
sudo mount -o discard,defaults /dev/sdb /mnt/data
最後記得要設定每次開機自動掛載,先用 blkid 找出硬碟的 UUID ,記錄下來後再把他填到 /etc/fstab 中
sudo blkid /dev/sdb
sudo nano /etc/fstab
將設定檔寫入 fstab
UUID=1535732s45-a52a-4e22-a258-7bsedgaw3e41 /mnt/data ext4 discard,defaults 0 2
存檔完畢後,測試一下是否有成功
延伸閱讀
by Rain Chu | 12 月 7, 2023 | GCP , Linux , MIS , Ubuntu
建立一個會自動開機和關閉虛擬機器的排程
值得注意的事項:
主機時間都是 UTC 時間,設定的時候,要記得處理這邊,例如台灣時區是+8,所以設定時間的時候要-8
1.首先設定一個 Compute Engine 的 「執行個體排程」如圖所示
2.建立一個新的執行個體排程
設定在每天18:00到23:00最忙碌的時候多開一台主機
3.將要執行的 VM 個體加入到此排程中
記得建立好排程後,要把適用這個規則的 VM 個體都加入,GCP 的排程才會去處理 VM 的開關
4.執行排程的權限設定
如果你之前沒做過權限設定,那肯定會遇到權限不足的錯誤訊息,這時候要來到 IAM 與管理 -> 身分與存取權管理,並且先勾選「包含 Google 提供的角色授權」,然後選擇「授予存取權」
然後主體要選擇你自己的 compute-system.iam 指派角色則是選擇 Compute 執行個體管理員(v1),如圖所示
建立 Ubuntu or Debian 的 Shell Script 定時執行開關機
1.建立自動開關設定的 Script
#!/bin/bash
SOURCE_CONF="/path/to/a.conf"
TARGET_CONF="/path/to/nginx/nginx.conf"
# 使用 sudo 執行需要 root 權限的命令
sudo cp "$SOURCE_CONF" "$TARGET_CONF"
sudo nginx -s reload
2.可以使用 crontab
命令來檢查和管理定時任務(cron jobs)
加入執行時間、程式碼等設定
# 分 鐘 小時 日期 月份 星期 命令
0 23 * * * /path/to/update_nginx_conf.sh
這樣就可以利用 root 權限運行 Script
其中:
分鐘 :分鐘(0-59)
小時 :小時(0-23,採24小時制)
日期 :一個月中的某天(1-31)
月份 :月份(1-12)
星期 :星期幾(0-7,其中0和7都代表星期日)
命令 :要執行的命令或腳本的絕對路徑
例如,如果您希望每天凌晨 3 點執行一個名為 script.sh
的腳本,您應該這樣寫:
檢查
檢查 crontab
列表 :輸入 crontab -l
來確認您的任務已被添加到 crontab
列表中。
其他方法
at 指令
例如要讓指令碼在明天的 10:00執行,可以執行下面的指令
at 10:00 AM tomorrow /path/to/script.sh
systemd (System and Service Manager)
創建一個 systemd 定時任務檔案。
在定時任務檔案中指定要執行的命令或腳本以及執行時間。
啟用定時任務。
例如:每一分鐘都要執行一次 script.sh
[Unit]
Description=My Script
[Timer]
OnCalendar=*-*-* *:* *
[Service]
ExecStart=/path/to/script.sh
錯誤處理
如果有遇到無法執行權限的話,可以參考下面的文章解決權限問題
結語
這樣設定完成後,GCP自己就會在晚上11點關機、晚上6點開機,而我的腳本則是在晚上11:00 關閉 Nginx 的 upstream,在18:15開啟 upstream server
近期留言