方法一:
到 https://www.cpan.org/ 搜尋要安裝的 module
- Jan 17 Tue 2023 15:31
安裝 perl modules 方法
- Jan 11 Wed 2023 11:01
debian linux 找不到 showmount 指令 ?
showmount: command not found
root@debian:~# apt-cache search showmount
nfs-common - NFS support files common to client and server
root@debian:~# apt install nfs-common
- Jan 11 Wed 2023 10:27
在虛擬機內安裝虛擬機
編輯設定 > 虛擬硬體 > CPU > 硬體虛擬化 > 勾選向客體作業系統公開硬體協助虛擬化
- Jan 11 Wed 2023 10:17
進入 vmware esxi guest os 的 bios
兩個方法
1. 編輯設定 > 虛擬機選項 > 開機延遲 > 填入秒數 > 在開機畫面時按 F2 進入 BIOS
2. 編輯設定 > 虛擬機選項 > 強制執行BIOS設定 > 勾選在虛擬機器下次開機時,強制進入 BIOS 設定畫面 (只會生效一次)
- Jan 07 Sat 2023 17:10
安裝 fail2ban 阻擋暴力破解帳號密碼
阻擋暴力破解除了防火牆、OTP、MFA 外,還可以安裝 fail2ban 來阻止暴力破解
安裝方式
apt install fail2ban
- Dec 19 Mon 2022 16:26
透過 traefik 自動將 http 轉址到 https
類似 apache 等 web server 的 rewrite rule 功能
command:
- "........"
- "........"
- "--entrypoints.web.address=:80"
- "--entrypoints.web.http.redirections.entryPoint.to=websecure" ## force redirect to https
- "--entrypoints.web.http.redirections.entryPoint.scheme=https"
- "--entrypoints.web.http.redirections.entrypoint.permanent=true"
- "--entrypoints.websecure.address=:443"
測試
root@lab:/home/lab# curl -I http://lab.pass.tw/testurl
HTTP/1.1 308 Permanent Redirect
Location: https://lab.pass.tw/testurl
Date: Mon, 19 Dec 2022 08:28:03 GMT
Content-Length: 18
Content-Type: text/plain; charset=utf-8
- Dec 16 Fri 2022 10:05
紀錄crontab 的輸出及錯誤訊息
以前在 troubleshooting 或是 debug crontab 的時候,習慣會去看一下 /var/mail 下面的郵件
正常的輸出及錯誤訊息都會記錄在郵件裡面
但現在的Linux 預設都沒有安裝MTA
所以如果不想額外安裝或是沒有權限可以安裝的話
可以直接輸出在自訂的log 內
如
* * * * * /scripts/backup.sh >> /var/log/backup.log 2>&1
- Dec 08 Thu 2022 15:04
增加gcp 硬碟空間
登入ssh, 檢查調整前硬碟狀況
root@example:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 80G 0 disk
└─sda1 8:1 0 80G 0 part /
確定 filesystem 是否為 ext4
root@example:~# df -Th
Filesystem Type Size Used Avail Use% Mounted on
udev devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs tmpfs 371M 76M 295M 21% /run
/dev/sda1 ext4 79G 71G 4.6G 94% /
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
登入 gcp console,選擇要加大空間的硬碟 > 編輯 > 直接指定想要的硬碟大小,只能加大,不能縮小
假設原來是80G,想增加至 100G,直接填100G 即可,最大可擴充到64T
在gcp 介面調整硬碟大小後,sda 已經變100G
root@example:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
└─sda1 8:1 0 80G 0 part /
root@example:~# parted /dev/sda
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) resizepart
Partition number? 1
Warning: Partition /dev/sda1 is being used. Are you sure you want to continue?
Yes/No? Yes
End? [85.9GB]? 100%
(parted) quit
Information: You may need to update /etc/fstab.
root@example:~# partprobe /dev/sda
root@example:~# resize2fs /dev/sda1
resize2fs 1.43.4 (31-Jan-2017)
Filesystem at /dev/sda1 is mounted on /; on-line resizing required
old_desc_blocks = 10, new_desc_blocks = 13
The filesystem on /dev/sda1 is now 26213888 (4k) blocks long.
檢查sda1 的空間是否已經可以使用
root@example:~# df -h
Filesystem Size Used Avail Use% Mounted on
udev 1.8G 0 1.8G 0% /dev
tmpfs 371M 76M 295M 21% /run
/dev/sda1 99G 71G 24G 76% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
root@example:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
└─sda1 8:1 0 100G 0 part /
參考資料
https://cloud.google.com/compute/docs/disks/resize-persistent-disk
- Dec 07 Wed 2022 16:42
編輯 docker-compose.yml 修改 adminer default port
adminer 預設 port 為 8080,雖然不是正規的 80,433
但也很容易跟其他port 衝到
修改方法1,將container 的8080/tcp 對應到 host的 8088/tcp
ports:
- 8088/8080
修改方法2
直接修改 container 的 listen port
ports:
- 8088:8088
command:
- 'php'
- '-S'
- '[::]:8088'
- '-t'
- '/var/www/html'
進到 container 中檢查
# docker exec -it adminer_test sh
/var/www/html $ netstat -na
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.11:40403 0.0.0.0:* LISTEN
tcp 0 0 :::8081 :::* LISTEN
udp 0 0 127.0.0.11:43328 0.0.0.0:*
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
- Dec 07 Wed 2022 14:56
centos 安裝 docker 環境
# yum install -y yum-utils
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
測試
# docker --version
Docker version 20.10.21, build baeda1f
安裝 docker-compose
# curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose
測試
# docker-compose --version
docker-compose version 1.27.4, build 40524192
- Nov 23 Wed 2022 15:17
停用 vim 的 visual mode
vim 的 visual mode 對有些人可能比較方便
但我就是用不習慣XD
要怎麼關閉呢
vi ~/.viminfo (如果沒有的話,請自行建立)
新增一行 set mouse-=a
或是直接下指令新增
echo "set mouse-=a" >> ~/.vimrc
source ~/.vimrc
- Nov 23 Wed 2022 10:32
華碩ASUS 筆記型電腦的insert 鍵在哪邊!!??
因為習慣的關係,常會用到insert key
但是剛拿到華碩的notebook 時,一時不知道該如何是好,insert 鍵到底在哪邊
原來是跟 del 同一個鍵,字超級小
要怎麼按 insert 鍵 : Fn + Shift + Delete
抱怨....好難用...設計華碩鍵盤的人在想什麼
- Nov 18 Fri 2022 15:03
docker 建立 apache web server 超快速
搜尋image
# docker search httpd
下載 image
# docker pull httpd
列出host 的images
#docker images
# docker images httpd
在host 建立web的documentroot ,並放一個測試檔案
# mkdir /home/www
# echo "helloworld" > /home/www/index.html
啟動docker,並且把 CONTAINER 的80 port 對應到host 的8000 port
把host 的 /home/www/ mount 在 CONTAINER 的 /usr/local/apache2/htdocs/ 下
# docker run -itd --name labweb -p 8000:80 -v /home/www/:/usr/local/apache2/htdocs/ httpd
進入 CONTAINER 的shell
# docker exec -it labweb bash
打開瀏覽器測試
http://host-ip:8000/
- Nov 18 Fri 2022 09:28
docker 架設 mysql server 超級快
1. 下載mysql image
# docker pull mysql:8
2. 查看目前的images 有哪些
# docker images
3. 啟動 mysql,把容器的3306 port 對應到本機的 3306 port ,初始化密碼為 Lab3306
# docker run --name labdb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=Lab3306 -d mysql:8
4. 查看容器執行狀態
# docker ps -a
5. 進入mysql 的容器中
# docker exec -it labdb bash
6. 跳出容器,但不關閉容器
ctrl-p + q
7. docker start 再次回到容器的 shell 中,後面可以接 CONTAINER ID 或是 NAMES
# docker start bb0ab4e9b251
或是
# docker start labdb
如果是要透過本機連線的話,先安裝mysql client
# apt install -y default-mysql-client
# mysql -h 127.0.0.1 -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.31 MySQL Community Server - GPL
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test2 |
+--------------------+
5 rows in set (0.002 sec)
MySQL [(none)]>
- Nov 15 Tue 2022 09:53
利用 windows 10 內建功能壓縮成 zip 檔
windows 內建的zip 解壓縮功能很方便也很直覺
如果沒有其他特殊需求,比如說要解 rar tar 7z 之類的檔案,其實真的可以不用再去下載其他的解壓縮工具
但壓縮成zip檔就沒那麼直覺了
以下是操作範例
1. 選取要壓縮的檔案或資料匣
2. 點擊右鍵 > 傳送到 > 壓縮的 (zipped) 資料匣 > 可選擇要不要重新命名
就完成了
- Nov 14 Mon 2022 15:14
解決 UNC 路徑不可當作 CMD 目前的目錄 問題
在批次檔內可以使用 %~dp0 指定工作路徑
但如果要指定網芳上的路徑,則會出現以下錯誤訊息
UNC 路徑不可當作 CMD 目前的目錄
解決方式,改用 pushd
如:
cd /d %~dp0
xxx.exe
yyy.exe
修改成
pushd %~dp0
xxx.exe
yyy.exe
popd
程式執行結束後如果不再需要的話,記得下 popd 刪除暫時的磁碟機代號
C:\>pushd /?
儲存目前目錄以供 POPD 命令使用,然後切換到指定的目錄。
PUSHD [path | ..]
path 指定要切換到的目錄。
如果您啟用擴充命令,PUSHD 命令會接受正常的磁碟機代號和路徑之外的網
路路徑。如果您指定了一個網路路徑,PUSHD 會建立一個代表該特定的網路
資源的暫時性磁碟機代號,然後以剛定義的磁碟機代號,變更目前的磁碟機
和目錄。暫時性磁碟機代號的配置是由 Z: 往下開始定義,方法是使用第一
個發現到未曾使用過的磁碟機代號。
C:\>popd /?
變更到用 PUSHD 命令儲存的目錄。
POPD
如果您啟用擴充命令,當您使用 POPD 命令將磁碟機從擴充的目錄堆疊
刪除時,POPD 命令會刪除由 PUSHD 所建立的暫時性磁碟機代號。
- Nov 14 Mon 2022 14:42
解決系統管理員身分執行批次檔找不到路徑問題
寫好一個批次檔 (*.bat) 要使用系統管理員身分執行時
出現以下錯誤訊息
不是內部或外部命令、可執行的程式或批次檔。
原因是開啟 cmd 時,預設路徑會在 c:\windows\system32 下
所以 .bat 內的程式沒有指定絕對路徑的話,就找不到可以執行的檔案
解決方式
假設你要執行的 exe 或是其他可執行檔跟 .bat 放在同一層路徑
在 .bat 前面加上 cd /d %~dp0
之後就可以接後續要執行的程式
如
cd /d %~dp0
someapp.exe /S /x
注意
cd 使用 /D 參數可以同時變更工作磁碟機及其工作目錄。
%~dp0 只有在批次檔內有效
一開始我傻傻的在 cmd 下測試很久都沒結果...
- Nov 11 Fri 2022 17:17
查詢samba dns 紀錄
samba dns 查詢格式
# samba-tool dns query
Usage: samba-tool dns query <server> <zone> <name> <A|AAAA|PTR|CNAME|MX|NS|SOA|SRV|TXT|ALL> [options]
example
列出 www.helloworld.local 的 A 紀錄
# samba-tool dns query localhost helloworld.local ftp A -U administrator
列出 helloworld.local 的 SOA 紀錄
# samba-tool dns query localhost helloworld.local @ SOA -U administrator
列出 helloworld.local 的所有紀錄
# samba-tool dns query localhost helloworld.local @ ALL -U administrator
- Nov 10 Thu 2022 15:24
debian/ubuntu 列出已經安裝的套件
$ sudo apt list --installed
或是
$ sudo dpkg-query -l
- Nov 09 Wed 2022 15:03
pfsense 透過 wan port 進入 web interface
預設僅能透過 lan port 登入 web interface,但有些狀況下需要透過 wan port 登入
解決方式
先按 8 登入 shell
在shell 下輸入: pfctl -d
之後可以再下 pfctl -e 回復
瀏覽器網址列輸入 http://wan-ip/ 測試
登入的預設帳號密碼為
admin / pfsense
- Nov 09 Wed 2022 09:16
透過AD GPO 強制讓使用者啟用螢幕保護程式
為了要保護個人電腦的資訊安全
讓使用者離開位置一段時間後進入螢幕保護程式
並需要重新輸入密碼後才可以解鎖
開啟群組原則管理工具
找到 Default domain policy > 編輯
進入到 使用者設定 > 原則 > 系統管理範本 > 控制台 > 個人化
總共有四個地方需要調整
1. 啟用螢幕保護裝置
已啟用
2. 以密碼保護螢幕保護裝置
已啟用
3. 螢幕保護裝置逾時
已啟用,並設定秒數 (最少1秒,最多86400秒)
4. 強制特定螢幕保護裝置
已啟用,輸入螢幕保護裝置執行檔時間(以3D文字為例,檔名為 ssText3d.scr )
被套用AD 群組原則的電腦,開啟螢幕保護裝置後可以看到很多欄位都已經反灰
無法讓使用者調整,但仍可讓使用者自訂要顯示的3D 文字
- Nov 03 Thu 2022 13:22
debian 透過apt 安裝套件錯誤 Media change: please insert the disc labeled
透過DVD 安裝的debian 11
安裝完後,想用 apt 安裝套件錯誤,於是出現以下錯誤
叫你把光碟片放進去,但我從網路上直接安裝就好
- Oct 18 Tue 2022 15:13
新增zpool 空間
zfs 目前仍無法直接拿一個新的硬碟擴充 zpool 空間
除非是把資料備份到其他地方,砍掉重練後再搬回來
如果在不搬移資料的狀態下,要擴充zpool空間,需要建立一個新的vdev 再把他加入 zpool 中
但缺點就是會浪費部分硬碟空間
實際操作
顯示目前 testpool 狀態
# zpool status testpool
使用3顆硬碟新增一個raidz ,並加入 testpool 中
# zpool add testpool raidz c1t6d0 c1t7d0 c1t8d0
顯示目前 testpool 狀態
# zpool status testpool
用 df 檢查可用硬碟容量
# df -h
心得:
這個做法不僅無法有效率使用到硬碟的空間
以上面的例子,只要其中一個raidz 同時掛兩顆硬碟,這個資料就毀了
同樣的六顆硬碟砍掉重練成 raidz-2 ,可用空間跟上述例子一樣,但可以同時掛掉任意兩顆硬碟
希望動態擴充 vdev 的功能早日被實做出來
- Oct 18 Tue 2022 11:03
啟用 solaris / omnios sshd 遠端連線
跟Linux 的 systemctl 比較不一樣的是,以下的enable 是立即啟用,並設定下次重開機時自動啟用
# svcadm enable ssh
- Oct 18 Tue 2022 10:11
啟用 solaris / omnios 實體網卡
如果安裝過程中沒有另外設定
預設安裝完後網卡不會自動啟用
ifconfig 指令看不到實體網卡
dladm 指令可以檢查網卡狀態,目前為 unknow
以下步驟為dhcp 範例
# ipadm create-ip e1000g0
# ipadm create-addr -T dhcp e1000g0/v4
#ipadm 可以看到目前的ip
再用 ifconfig -a 確認看看
- Oct 17 Mon 2022 13:30
解決 Solaris/Omnios DNS 解析問題
剛裝好的 solaris/omnios 作業系統
IP設定好,確定網路可以通
/etc/resolv.conf 也設定好 dns server 的位置
- Sep 24 Sat 2022 18:25
fortigate 防火牆回復出廠設定
在cli 模式下輸入
FG200B3912602111 # exec factoryreset
This operation will reset the system to factory default!
Do you want to continue? (y/n)y
- Sep 24 Sat 2022 14:54
忘記密碼時,將 HP switch v1910-24g 開機至出廠設定
重置 HP switch v1910-24g 至出廠設定
1. 接上 console 線,設定值為 38400,8,1,N
2. 打開電源
3. 按 crtl+B 進入 Extended Boot menu
4. 選擇 7. Skip current system configuration
5. 選擇 0. Reboot
Starting......
Press Ctrl+D to access BASIC BOOT MENU
Press Ctrl+T to start memory test
- Sep 21 Wed 2022 15:56
Dell PERC H710 移除 Foreign 設定
server 之間互相殺肉,常常會發生這種事
如果備品硬碟之前有設定過 raid
沒注意就直接裝在其他 server 上
會變成 Foreign config 的硬碟無法直接 rebuild
- Sep 12 Mon 2022 15:56
Debian 11 安裝 ifconfig
root@debian-lab:~# ifconfig
-bash: ifconfig: command not found