已經有先進寫得很清楚了, 就不再獻醜, 直接將來源分享給看倌
Windows 10 允許多個使用者同時登入
Windows 11 允許多條遠端桌面連線
半畝方塘一鑑開,天光雲影共徘徊;問渠那得清幾許,為有源頭活水來。
1、下載安裝檔:mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar
歷史版本下載地址:https://downloads.mysql.com/archives/community/
2、解壓縮安裝檔
#tar zxvf mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar
3、先安裝相依性套件
#apt-get update
#apt-get upgrade
#apt-get install ./libmysql*
#apt-get install libtinfo5
4、安裝client 與 Server
#apt-get install ./mysql-community-client_5.7.31-1ubuntu18.04_amd64.deb
#apt-get install ./mysql-client_5.7.31-1ubuntu18.04_amd64.deb
#apt-get install ./mysql-community-server_5.7.31-1ubuntu18.04_amd64.deb
#apt-get install ./mysql-server_5.7.31-1ubuntu18.04_amd64.deb
安裝Server的過程中, 會請你輸入MySQL Server的管理者(root)密碼
5、安裝完畢後可用以下指令檢查
systemctl status mysql.service
systemctl start mysql.service
systemctl stop mysql.service
當任何目錄有 mount, 然後有程式 使用/掛 在那個目錄上的話, 就沒有辦法 umount 掉, 於 umount 時會出現 Device is busy
的訊息.
要怎麼找出是哪個程式掛在那個目錄上? 然後去把那個程式砍掉呢?
假設現在 mount 起來的目錄是 /opt/data
數字代表程序, 而後面c的代表意思參考下列
再用 #kill -9 698434
將程序刪除後即可umount
#umount /opt/data
現在使用完crontab後 (crontab-e),每次都出現crontab:installing new crontab的提示
用crontab-e 編輯的任務在crontab:installing new crontab三分鐘之內是不會執行的,所以你在測試的時候,至少時間後推延三分鐘!
回應”crontab: installing new crontab”表示設定排程任務成功。
要安裝 nginx:
#sudo apt-get install nginx
安裝 php:
假如你下指令只安裝PHP的話,它會連Apache2一起安裝。
若不想安裝Apache2,則必須先裝PHP的其他套件,像是php-fpm、php-cgi。
(php-fpm是nginx執行PHP必要的套件)
#sudo apt install php-fpm php-cgi
再安裝php
#sudo apt install php
沒有指定安裝版本,會直接安裝最新的穩定版本(8.3)。
假如想要安裝舊版本的PHP,在指令中加上版號即可,如:
sudo apt install php7.2 php7.2-fpm php7.2-cgi
設定 nginx:
nginx的設定檔預設在/etc/nginx/sites-available/default
可以去開啟它 #vi /etc/nginx/site-available/default
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.3-fpm.sock
fastcgi_params SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
改好後記得檢查再重啟nginx
#nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
#systemctl restart nginx
上面的完成應該就可以在php檔中執行phpinfo()來看PHP的環境設定。其他的套件就再另外安裝、測試。
#vi /var/www/html/i.php
# vi /var/www/html/i.php
[i]
<?php
phpinfo()
?>
[ESC]:wq
再用瀏覽器開啟該頁面,看是否正常常呈現
下載完後可以使用win10內建的hash值工具certutil來核對
Windows 10 已經有內建計算檔案 hash 值工具 certutil 使用方式如下
certutil -hashfile <filename> <hash-mode>
當你下載了一個檔案, 要確認是否過程有被竄改, 可以檢查hash值, 如下圖所示, 站台提供的hash值是用SHA256方式演算
下載完後可以使用win10內建的hash值工具certutil來核對是否正確, 操作如下:
再把二個值放在一起比對即可確認該檔沒有被竄改過
Ubuntu 自 17.10 以後就可以用 netplan 設置網卡~
查看設定檔
所有放置於 /etc/netplan 底下的 yaml 檔都會影響 netplan 的設置,檢查設定檔看到只有一個 00-installer-config.yaml,內容空空如也,一般來說在安裝系統時有設定過網路就會有,如果沒有的話就自己新增囉:
# 查看設定檔
$ ls /etc/netplan/
00-installer-config.yaml
$ cat 00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
ethernets:
enp0s3:
dhcp4: true
version: 2
手動修改設定檔
配置特定網卡的方法就是在 YAML 內將配置寫入,如下:
network:
ethernets:
ens160:
dhcp4: false
addresses:
- 192.168.26.76/24
routes:
- to: default
via: 192.168.26.1
nameservers:
addresses:
[10.0.1.10,192.168.27.3]
version: 2
設定檔測試
遠端工作時如果套用了錯誤的網路設定檔就失聯了,因此在套用之前可以先用 netplan try 測試測定檔是否設置正確,測試套用後如果沒有在120秒之內進行確認(例如套用了錯誤的網路設定導致使用者斷線)就會回復至先前有效的設定,讓使用者可以再次連上機器修正配置:
$ sudo netplan try
Warning: Stopping systemd-networkd.service, but it can still be activated by:
systemd-networkd.socket
Do you want to keep these settings?
Press ENTER before the timeout to accept the new configuration
Changes will revert in 120 seconds
Configuration accepted.
測試無誤後就可以直接讓設定檔生效了:
$ sudo netplan apply
查看現況
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:bd:b7:dc brd ff:ff:ff:ff:ff:ff
inet 192.168.26.76/24 metric 100 brd 192.168.26.255 scope global dynamic enp0s3
valid_lft 531sec preferred_lft 531sec
inet6 fe80::a00:27ff:febd:b7dc/64 scope link
valid_lft forever preferred_lft forever
查詢時區可用以下指令
timedatectl
查詢可用時區
timedatectl list-timezones
變更時區指令如下
timedatectl set-timezone Asia/Taipei
Ubuntu環境下,如何更改預設的「editor」
操作說明
執行下面的指令,就可以設定改用其他慣用的文字編輯器了。
sudo update-alternatives --config editor
會出現一個類似如下的列表,選擇你預設要使用的文字編輯器就行了。
There are 4 choices for the alternative editor (providing /usr/bin/editor).
Selection Path Priority Status
------------------------------------------------------------
* 0 /bin/nano 40 auto mode
1 /bin/ed -100 manual mode
2 /bin/nano 40 manual mode
3 /usr/bin/vim.basic 30 manual mode
4 /usr/bin/vim.tiny 15 manual mode
Press <enter> to keep the current choice[*], or type selection number:
我輸入「4」,按下「Enter」。
上面的操作完畢後驗證一下,看看是不是你想要預設使用的編輯器。
執行下面的指令
editor
或是執行下面的指令
sensible-editor
另外也可以直接執行下面的指令,更改成你慣用的文字編輯器
例如:
慣用 nano
sudo update-alternatives --set editor /bin/nan
慣用 vim.tiny
sudo update-alternatives --set editor /usr/bin/vim.tiny
在登入 SSH 時, 可以開啟多個 SSH Client , 使用同一個帳號同時連接, 這個情況有時也是需要的。但如果要限制個別帳號同時登入的數量, 可以用以下方法設定。
在多數 Linux 發行版, 在 /etc/security/ 目錄下的 limits.conf 檔案, 可以設定每個帳號或群組同時建立 SSH session 的數量。編輯這個檔案需要有 root 權限, 可以用 sudo 開啟:
$ sudo vi /etc/security/limits.conf
例如想限制帳號 opencli 只可以同時建立一個 SSH session, 可以加入以下內容:
opencli hard maxlogins 1
如果要限制群組的帳號, 可以用以下格式:
groupname hard maxlogins 1
如果要限制系統所有帳號, 可以用 * 取代帳號名稱:
* hard maxlogins 1
當帳號嘗試建立超出限制的 session 時, 登入時會看到以下錯誤:
Too many logins for ‘opencli’.
Last login: Tue Feb 20 08:12:11 2020 from xxx.xxx.xxx.xxx
Connection to xxx.xxx.xxx.xxx closed.
另一種情況是想限制整台主機可以建立的 session, 可以用 maxsyslogins:
* hard maxsyslogins 1
設定了上面語法後, 系統同時只可以該一個帳號建立一個 SSH sessions.
使用Linux也已經有20年了,從Redhat 6.2開始接觸,大都是以RHEL家族的發行版為主,Redhat 9後因為Redhat政策改變,接著用CentOS 3。
一直到最新的CentOS 8 EOL因為CentOS政策的改變,所以也是要找尋新的發行版來使用。雖然2010左右因為去考LPIC的證照而接觸了Ubuntu,但它是另一個debian的家族。
今天因為要裝MSTR的需求,所以指定要用SUSE,雖然之前有聽過,但從未真正的使用過。今天機緣巧合也算是緣份,剛好操作到它。發現它也是很有特色,沒有fdisk可以用,很多功能都做在yast上面,它幾乎可以涵蓋大多數的常用功能。
但netstat這個常用指令卻無法下,查詢套件也有安裝,後來爬文後才知道改用 ss 。其實也沒有什麼不同,習慣就好了。之後公司的SAP主機都會改用SUSE-Enterprise 熟悉一下也是不錯的機會。
安裝 certbot
官方建議使用 Canonical 的 snapcraft 來進行安裝。
Ubuntu 通常都已預裝好 snapcraft (因為 Ubuntu 的爸爸就是 Canonical),可以使用下方的指令確保使用最新的 snapcraft 版本。
sudo snap install --classic certbot
設定軟連結讓 Certbot 指令可以執行。
sudo ln -s /snap/bin/certbot /usr/bin/certbot
向 Let’s Encrypt 申請憑證
啟動 Certbot,使用手動授權方法搭配 DNS 查問以驗證網域所有權,這會為您的頂層網域及其子網域請求萬用字元憑證。
sudo certbot -d $DOMAIN -d $WILDCARD --manual --preferred-challenges dns certonly
當你使用ssh要連線某主機時,竟發現這個訊息,並且無法連線時怎麼辧 ?
解決的辦法是把ssh指定加密的算法就可以連線,舉例如下
ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa aliok@192.168.7.14
或者sftp也可以使用
sftp -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa aliok@192.168.7.14
如果是經常性要連線的主機,可以在設定檔中修改,不必每次下這麼多參數
~/.ssh/config
內容範例如下
Host 192.168.7.14
HostName 192.168.7.14
User john
Port 22
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa
取消VMWare 的USB 藍芽設定即可
補裝語言套件即可
# dnf install langpacks-en glibc-all-langpacks -y
或
# dnf install glibc-langpack-en
Rocky 與 CentOS 的網卡指令從第8版後已經不再是systemctl restart network, 而是改用『nmcli』 這個指令。
查看網卡IP
ip address
可簡化為
ip a
列出網卡資訊
nmcli
查看網卡狀態
nmcli device status
秀出網卡詳細資訊
nmcli device show
查看網卡en160詳細資訊
nmcli device show ens160
重啟網卡
nmcli connection restart
啟動或關閉網卡
nmcli c up ens160
nmcli c down ens160
設定網卡開機自動啟動
nmcli c modify ens160 connection.autoconnect yes
剛除連接網卡
nmcli c delete ens160
新增/刪除一個IP位址和閘道
nmcli c modify ens160 +ipv4.address 192.168.0.3/24 #新增ip
nmcli c modify ens160 -ipv4.address 192.168.0.3/24 #删除ip
nmcli c modify ens160 ipv4.gateway 192.168.0.1 #設定閘道
設定DNS
nmcli c modify ens160 ipv4.dns 8.8.8.8 #新增DNS
nmcli c modify ens160 -ipv4.dns 8.8.8.8 #删除DNS
設定IP取得方式
nmcli connection modify ens160 ipv4.method manual #手動設定
nmcli connection modify ens160 ipv4.method auto #DHCP自動取得
讓設定重效(修改後要執行才能生效)
nmcli connection reload
立刻生效網卡設定, 不必重新啟動系統(三擇一)
nmcli c up ens160
nmcli device connect ens160
nmcli device reapply ens160
方法只是差別在多一個參數而已,另外產出的cfg檔裡, IP後面也都會加5個冒號
SNMPv1:
cfgmaker public@192.168.1.1 > kh.cfg
SNMPv2:
cfgmaker –snmp-options=:::::2 public@192.168.1.1 > kh.cfg
編輯文件(預設没有此文件)
vim ~/.vimrc
set mouse=c
syntax on
說明:
第一行:設定成命令列模式,設定完成後代碼高亮會消失;
第二行:設定代碼為高亮
保留5個備份檔, 把最舊的刪除
#!/bin/bash
mkdir /web/backup
cd /opt
NEWFILE="`date +%Y%m%d-%H%M`"
TARGET="/web/backup"
FILES_LIMIT=5
# backup httpd data
tar -zcf $TARGET/web_$NEWFILE.tar.gz webdir
FILES_NUM=`/bin/ls -l $TARGET |grep "gz" |wc -l`
# Delete over files
cd $TARGET
for d in `ls`
do
if [ $FILES_NUM -gt $FILES_LIMIT ]; then
BACKUP_LIST=`ls -tr *gz`
DEL_FILE=`echo $BACKUP_LIST | cut -d ' ' -f 1 | head -1`
rm -f $DEL_FILE
FILES_NUM=`/bin/ls -l $TARGET |grep "gz" |wc -l`
fi
done
chown backup /web/backup/*
通常,利用SSH管理遠端Linux伺服器時,經常需要與本地互動檔案。當然,我們可以利用FTP方式,比如通過Filezilla客戶端軟體。不過直接使用Xshell軟體自帶的上傳和下載功能無疑使最方便快捷的。通常SSH軟體支援的檔案傳輸協議主要有ASCII、Xmodem、Zmodem等。
rz,sz是便是Linux/Unix同Windows進行ZModem檔案傳輸的命令列工具。
使用前提:
檔案傳輸是資料交換的主要形式。在進行檔案傳輸時,為使檔案能被正確識別和傳送,我們需要在兩臺計算機之間建立統一的傳輸協議。這個協議包括了檔案的識別、傳送的起止時間、錯誤的判斷與糾正等內容。常見的傳輸協議有以下幾種:
單單是SSH客戶端軟體支援以上檔案傳輸協議(ASCII,Xmodem,Ymodem,Zmodem)還不行,我們的Linux伺服器上也得安裝相應的軟體,以支援這些檔案傳輸協議才行。在Linux上,lrzsz就是完成此任務的,lrzsz就是一個支援 Zmodem 傳輸協議的工具。我們通過sz/rz兩個命令,分別傳送/接收檔案。如果我們的系統中沒有安裝lrzsz這個包,就會報錯,安裝即可解決。
##以ubuntu為例
aliok@ulab01:~$ rz
Command 'rz' not found, but can be installed with:
sudo apt install lrzsz
aliok@ulab01:~$ sudo apt install lrzsz
[sudo] password for aliok:
Sorry, try again.
[sudo] password for aliok:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
minicom
The following NEW packages will be installed:
lrzsz
0 upgraded, 1 newly installed, 0 to remove and 20 not upgraded.
Need to get 74.8 kB of archives.
After this operation, 531 kB of additional disk space will be used.
Get:1 http://tw.archive.ubuntu.com/ubuntu focal/universe amd64 lrzsz amd64 0.12.21-10 [74.8 kB]
Fetched 74.8 kB in 0s (303 kB/s)
Selecting previously unselected package lrzsz.
(Reading database ... 232559 files and directories currently installed.)
Preparing to unpack .../lrzsz_0.12.21-10_amd64.deb ...
Unpacking lrzsz (0.12.21-10) ...
Setting up lrzsz (0.12.21-10) ...
Processing triggers for man-db (2.9.1-1) ...
### 下載一個檔案:
# sz filename
### 下載多個檔案:
# sz filename1 filename2
### 下載dir目錄下的所有檔案,不包含dir下的資料夾:
# sz dir/*
### 直接鍵入rz命令即可
# rz
### 直接拖動檔案到 xshell即可
輸入rz回車後,會出現檔案選擇對話方塊,選擇需要上傳檔案,一次可以指定多個檔案,上傳到伺服器的路徑為當前執行rz命令的目錄。
rz命令(下載)
當我們鍵入rz命令之後,會彈出檔案選擇對話方塊,選擇需要傳輸的檔案,點選 Add 即可。
接收的目錄就是我們當前執行rz命令的目錄。
更簡單直接的方法,直接選中檔案,用滑鼠點住檔案往Xshell裡面一拖就可以了。
sz命令(上傳)
假設我要傳送檔案,直接使用sz命令, 其後接上檔名即可。同理,敲下ENTER後,也會跳出對話方塊,讓我們選擇存放的資料夾。
使用lrzsz非常方便,但是有一點不足之處: 無法傳輸大於 4G 的檔案。