Linux高級運維 第四章 文件的基本管理和XFS文件系統備份恢復

来源:https://www.cnblogs.com/aqicheng/archive/2019/03/05/10477673.html
-Advertisement-
Play Games

4.1 Linux系統目錄結構和相對/絕對路徑 4.1.1系統目錄結構 在windows系統中,查看文件先進入相應的盤符,然後進入文件目錄 在windows中,它是多根 c:\ d:\ e:\ Linux只有一個根目錄 使用tree命令查看linux目錄結構,這個命令預設是沒有安裝的,需要手工安裝一 ...


4.1 Linux系統目錄結構和相對/絕對路徑

4.1.1系統目錄結構

  在windows系統中,查看文件先進入相應的盤符,然後進入文件目錄

在windows中,它是多根  c:\    d:\   e:\

Linux只有一個根目錄

使用tree命令查看linux目錄結構,這個命令預設是沒有安裝的,需要手工安裝一下

[root@xuegod63 ~]# mount /dev/sr0  /media/

mount: /dev/sr0 防寫,將以只讀方式掛載

[root@xuegod63 ~]# rpm -ivh /media/Packages/tree-1.6.0-10.el7.x86_64.rpm



[root@xuegod63 ~]# yum -y install tree

查看/tmp目錄結構

[root@xuegod63 ~]# tree  /tmp/ 

 

/

處於linux系統樹形結構的最頂端,它是linux文件系統的入口,所有的目錄、文件、設備都在 / 之下

/bin

bin是Binary的縮寫。常用的二進位命令目錄。比如 ls、cp、mkdir、cut等;和/usr/bin類似,一些用戶級gnu工具

/boot

存放的系統啟動相關的文件,例如:kernel.grub(引導裝載程式)

/dev

dev是Device的縮寫。設備文件目錄,比如音效卡、磁碟……在Linux中

一切都被看做文件。終端設備、磁碟等等都被看做文件

設備文件: /dev/sda,/dev/sda1,/dev/tty1,/dev/tty2,/dev/pts/1, /dev/zero, /dev/null, /dev/cdrom

/etc

常用系統及二進位安裝包配置文件預設路徑和伺服器啟動命令目錄

passwd 用戶信息文件

shadow  用戶密碼文件

group 存儲用戶組信息

fstab 系統開機啟動自動掛載分區列表

hosts 設定用戶自己的IP與主機名對應的信息

/home

普通用戶的家目錄預設存放目錄

/lib

庫文件存放目錄,函數庫目錄

/lost+found

只在centos6中有

預設為空,被FSCK(file system check用來檢查和維護不一致的文件系統。若系統掉電或磁碟發生問題,可利用fsck命令對文件系統進行檢查)用來放置零散文件(沒有名稱的文件) 當系統非法關機後,這裡就會存放一些文件。

在centos6版本下,每個分區的掛載點下會有些目錄

/mnt

/media

一般用來臨時掛載存儲設備的掛載目錄,比如有cdrom、U盤等目錄

在CENTOS7中會掛載到/run下麵

/opt

表示的是可選擇的意思,有些軟體包也會被安裝在這裡

/proc

操作系統運行時,進程(正在運行中的程式)信息及內核信息(比如cpu、硬碟分區、記憶體信息等)存放在這裡。/proc目錄是偽裝的文件系統proc的掛載目錄,proc並不是真正的文件系統。因此,這個目錄是一個虛擬的目錄,它是系統記憶體的映射,我們可以通過直接訪問這個目錄來獲取系統信息。也就是說,這個目錄的內容不在硬碟上而是在記憶體里

查看咱們的CPU信息

cat /proc/cpuinfo

/sys

系統目錄,存放硬體信息的相關文件

/run

運行目錄,存放的是系統運行時的數據,比如進程的PID文件

/srv

服務目錄,存放的是我們本地服務的相關文件

/sbin

大多數涉及系統管理的命令都存放在該目錄中,它是超級許可權用戶root的可執行命令存放地,普通用戶無許可權執行這個目錄下的命令,凡是目錄sbin中包含的命令都是root許可權才能執行的 

/tmp

該目錄用於存放臨時文件,有時用戶運行程式的時候,會產生一些臨時文件。/tmp就是用來存放臨時文件的。/var/tmp目錄和該目錄的作用是相似的,不能存放重要數據,它的許可權比較特殊

[root@xuegod63 ~]# ls –ld /tmp

drwxrwxrwt 10 root root 12288 Oct 3 20:45 /tmp/ à粘滯位(sticky bit)目錄的sticky位表示這個目錄里的文件只能被owner和root刪除

/var

系統運行和軟體運行時產生的日誌信息,該目錄的內容是經常變動的,存放的是一些變化的文件。比如/var下有/var/log目錄用來存放系統日誌的目錄,還有mail、/var/spool/cron  

/usr

存放應用程式和文件,
/usr/bin 普通用戶使用的應用程式
/usr/sbin 管理員使用的應用程式
/usr/lib 庫文件Glibc(32位)
/usr/lib64 庫文件Glibc

/lib

/lib64

都在/usr/目錄下

這個目錄里存放著系統最基本的動態鏈接共用庫,包含許多被/bin/和/sbin/中的程式使用的庫文件,目錄/usr/lib/中含有更多用於用戶程式的庫文件。作用類似於windows里的DLL文件,幾乎所有的應用程式都需要用到這些共用庫

註:lib***.a是靜態庫
     lib***.so是動態庫

靜態庫在編譯時被載入到二進位文件中
動態庫在運行時載入到進程的記憶體空間中

簡單的說:這些庫是為了讓你的程式能夠正常編譯運行的

其實類似於WIN中.dll文件,幾乎所有的應用程式都需要用到這些共用庫

4.1.2  絕對路徑和相對路徑

路徑:在我們平時使用電腦時要找到需要的文件就必須知道文件的位置,而表示文件的位置的方式就是路徑

絕對路徑:在Linux中,絕對路徑是從”/”開始的,比如/usr、/etc/passwd。如果一個路徑是從根(/)開始的,它一定是絕對路徑.

相對路徑:相對路徑是以 . 或 .. 開始的,

 [root@xuegod63 etc]# pwd  #判斷用戶當前所處的位置

絕對路徑: 從/開始的路徑  /home/mk

相對路徑: 相對於當前目錄開始a.txt  ./a.txt  ../miao/b.txt   當前目錄在/etc

[root@xuegod63 ~]# cd /etc/
[root@xuegod63 etc]# ll passwd 
-rw-r--r-- 1 root root 2116 11月 16 14:57 passwd
[root@xuegod63 etc]# ll /etc/passwd
-rw-r--r-- 1 root root 2116 11月 16 14:57 /etc/passwd

 

4.2  文件的管理

文件管理方式有多種:

改變目錄: cd

創建/修改/移動/刪除: touch   mkdir    mv  vi   rm  cp

 

4.2.1 創建文件和文件夾

命令之:touch 

作用:常用來創建空文件,如果文件存在,則修改這個文件的時間

補充:文件的三種時間

[root@xuegod63 ~]# ll /etc/passwd  #查看文件修改的時間

-rw-r--r-- 1 root root 2116 11月 16 14:57 /etc/passwd

[root@xuegod63 ~]# stat /etc/passwd  #查看文件屬性(其中包括文件時間屬性)

  文件:"/etc/passwd"

  大小:2116             塊:8          IO 塊:4096   普通文件

設備:803h/2051d Inode:9401663     硬鏈接:1

許可權:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)

最近訪問:2017-11-16 14:57:39.923177258 +0800

最近更改:2017-11-16 14:57:39.397177256 +0800

最近改動:2017-11-16 14:57:39.409177256 +0800

註:

訪問時間:atime  查看內容   cat  a.txt

修改時間:mtime  修改內容  vim a.txt

改變時間:ctime  文件屬性,比如許可權  change time。  chmod +x a.sh

 

語法:touch 文件名

[root@xuegod63 ~]# cd /opt/

[root@xuegod63 opt]# touch a.txt

[root@xuegod63 opt]# touch file1 file2

[root@xuegod63 opt]# touch file{6..20}  #創建file6到file20的文件

[root@xuegod63 opt]# ls

a.txt  file10  file12  file14  file16  file18  file2   file6  file8  rh

file1  file11  file13  file15  file17  file19  file20  file7  file9

[root@xuegod63 opt]#  touch -d "20181019 21:30" xuegod.txt

[root@xuegod63 opt]# ll xuegod.txt

-rw-r--r-- 1 root root 0 10月 19 2018 xuegod.txt

4.2.2  使用vim和重定向創建一個新文件

用vim命令創建一個新文件

[root@xuegod63 mnt]# vim xuegod-1.txt

用重定向創建一新文件

[root@xuegod63 mnt]#echo  aaa > xuegod.txt

4.2.2  命令之:mkdir

作用:創建目錄

語法:mkdir  (選項) 文件名

例:

[root@xuegod63 opt]# mkdir dir1

[root@xuegod63 opt]# mkdir dir2 dir3 /home/dir4

[root@xuegod63 opt]# ls /home/

dir4  mk

[root@xuegod63 opt]# mkdir /tmp/a/b/c

mkdir: 無法創建目錄"/tmp/a/b/c": 沒有那個文件或目錄

[root@xuegod63 opt]# mkdir -p /tmp/a/b/c  #在創建一個目錄的

候,如果這個目錄的上一級不存在的話,要加參數-p

[root@xuegod63 opt]# ls /tmp/a/b/

4.2.2  刪除文件和目錄

用到的命令:rm

作用:可以刪除一個目錄中的一個或多個文件或目錄,對於鏈接文件,只是刪除整個鏈接文件,而原文件保持不變的

語法:rm (選項) 處理對象

選項:

-f  強制刪除,沒有提示

-r  刪除目錄

例子:

[root@xuegod63 opt]# rm -rf a.txt

[root@xuegod63 opt]# rm -rf a.txt dir

[root@xuegod63 opt]# rm -rf file*

rm -rf  (慎用,一定要在刪除以前確定一下所在目錄,防止誤刪除重要數據)

4.2.3 複製文件

命令:cp  源文件/目錄   目錄文件/目錄

選項:-R/r:遞歸處理,將指定目錄下的所有文件與子目錄一併處理

例子:

[root@xuegod63 ~]# cp /etc/passwd /opt/   #複製文件

[root@xuegod63 ~]# cp -r /boot/grub /opt/  #複製目錄

4.2.4 移動文件

[root@xuegod63 opt]# mv passwd  dir1

[root@xuegod63 opt]# mv xuegod.txt dir1/a.txt   #在移動文件的時候支持改名操作

4.3  查看文件

4.3.1 命令之:cat

語法:cat 文件名

作用:查看文件內容,一次顯示整個文件的內容

例子:

[root@xuegod63 ~]# cat /etc/passwd

4.3.2 命令之:more

作用:以分頁形式顯示文件內容

語法:more + 文件名

說明: 按下回車刷新一行,按下空格刷新一屏,輸入q鍵退出

 

4.3.3 命令之:less

作用:和more功能一樣

語法:less +文件名

說明:linux中more與less的區別

more:不支持後退,但幾乎不需要加參數,空格鍵是向下翻頁,Enter鍵是向下翻一行,在不需要後退的情況下比較方便

less:支持前後翻滾,既可以向上翻頁(pageup按鍵),也可以向下翻頁(pagedown按鍵)。,空格鍵是向下翻頁,Enter鍵是向下翻一行

 

4.3.4 命令之:head

作用: 用於顯示文件的開頭的內容。在預設情況下,head命令顯示文件的頭10行內容

語法:head(選項)文件名

參數: -n 顯示從文件頭開始的行數

[root@xuegod63 opt]# head /etc/passwd

[root@xuegod63 opt]# head -n 3 /etc/passwd #顯示前3行

4.3.5 命令之:tail

作用: 用於顯示文件中的尾部內容。預設在屏幕上顯示指定文件的末尾1

語法:tail (選項)文件名

參數: 

-n 顯示文件尾部多少行的內容(n為數字)

-f  動態顯示數據(不關閉),常用來查看日誌

[root@xuegod63 ~]# tail -n 3 /var/log/secure  #查看最後3行記錄

[root@xuegod63 ~]# tail -f /var/log/secure   #在一個終端執行此命令動態查看文件內容

[root@xuegod63 ~]# ssh root@192.168.1.63   #在另一個終端遠程登錄Linux,登錄成功後

[root@xuegod63 ~]# tail -f /var/log/secure  #可以動態查看到登錄成功的日誌

Nov 17 00:08:32 xuegod63 sshd[2924]: Accepted password for root from 192.168.1.63 port 39904 ssh2

 

4.4  實戰:xfs文件系統的備份和恢復

XFS提供了 xfsdump 和 xfsrestore 工具協助備份XFS文件系統中的數據。xfsdump 按inode順序備份一個XFS文件系統。

centos7選擇xfs格式作為預設文件系統,而且不再使用以前的ext,仍然支持ext4,xfs專為大數據產生,每個單個文件系統最大可以支持8eb,單個文件可以支持16tb,不僅數據量大,而且擴展性高。還可以通過xfsdump,xfsrestore來備份和恢復。

與傳統的UNIX文件系統不同,XFS不需要在備份前被卸載;對使用中的XFS文件系統做備份就可以保證鏡像的一致性。XFS的備份和恢復的過程是可以被中斷然後繼續的,無須凍結文件系統。xfsdump 甚至提供了高性能的多線程備份操作——它把一次dump拆分成多個數據流,每個數據流可以被髮往不同的目的地

首先瞭解一下xfsdump的備份級別有以下兩種,預設為0(即完全備份)

0 級別代表:           完全備份

1  到9級別代表:      增量備份

擴展:

完全備份:每次都把指定的備份目錄完整的複製一遍,不管目錄下的文件有沒有變化;

增量備份:每次將之前(第一次、第二次、直到前一次)做過備份之後有變化的文件進行備份;

差異備份:每次都將第一次完整備份以來有變化的文件進行備份。

4.4.1 環境準備

實驗環境:

        系統CENTOS7.2 添加一塊虛擬硬碟(準備一個測試分區)

正常使用一塊磁碟過程如下:

添加磁碟大小:20G à分區à格式化à掛載

 

 

對新添加的硬碟進行格式化:

[root@xuegod63 ~]# fdisk /dev/sdb                             #指定分區的設備

歡迎使用 fdisk (util-linux 2.23.2)。

更改將停留在記憶體中,直到您決定將更改寫入磁碟。

使用寫入命令前請三思。

Device does not contain a recognized partition table

使用磁碟標識符 0x06d5a427 創建新的 DOS 磁碟標簽。

命令(輸入 m 獲取幫助):n  #創建一個新的分區

Partition type:

   p   primary (0 primary, 0 extended, 4 free)

   e   extended

Select (default p): p  #創建一個主分區

分區號 (1-4,預設 1):

起始 扇區 (2048-41943039,預設為 2048):

將使用預設值 2048

Last 扇區, +扇區 or +size{K,M,G} (2048-41943039,預設為 41943039):+1G  #指定分區大小

分區 1 已設置為 Linux 類型,大小設為 1 GiB

命令(輸入 m 獲取幫助):p    #列印分區表

磁碟 /dev/sdb:21.5 GB, 21474836480 位元組,41943040 個扇區

Units = 扇區 of 1 * 512 = 512 bytes

扇區大小(邏輯/物理):512 位元組 / 512 位元組

I/O 大小(最小/最佳):512 位元組 / 512 位元組

磁碟標簽類型:dos

磁碟標識符:0x06d5a427

   設備 Boot      Start         End      Blocks   Id  System

/dev/sdb1            2048     2099199     1048576   83  Linux

命令(輸入 m 獲取幫助):w  #保存

The partition table has been altered!

Calling ioctl() to re-read partition table.

正在同步磁碟。

[root@xuegod63 ~]# ls  /dev/sdb*

/dev/sdb  /dev/sdb1

使用新的分區,格式化分區,併進行掛載

[root@xuegod63 ~]# mkfs.xfs /dev/sdb1

[root@xuegod63 ~]# mkdir /sdb1     #創建掛載點

[root@xuegod63 ~]# mount /dev/sdb1 /sdb1   #掛載

準備備份測試文件

[root@xuegod63 ~]# cd /sdb1/

[root@xuegod63 sdb1]# cp /etc/passwd ./

[root@xuegod63 sdb1]# mkdir test

[root@xuegod63 sdb1]# touch test/a

[root@xuegod63 sdb1]# tree /sdb1/

[root@xuegod63 sdb1]# tree /sdb1/

/sdb1/

├── passwd

└── test

    └── a

 

4.4.2 備份

1、備份整個分區。 (這個功能就像是虛擬機的快照,伺服器被黑後,進行快速恢復)

xfsdump  -f 備份存放位置 要備份路徑或設備文件

註意:備份的路徑這裡不能寫成/sdb1/。  可以是/dev/sdb1 或/sdb1

[root@xuegod63 sdb1]# xfsdump -f /opt/dump_sdb1  /dev/sdb1

xfsdump: using file dump (drive_simple) strategy

xfsdump: version 3.1.4 (dump format 3.0) - type ^C for status and control

========== dump label dialog ==============================

please enter label for this dump session (timeout in 300 sec)

 -> dump_sdb1  指定備份會話標簽

session label entered: "dump_sdb1"

 --------------------------------- end dialog ---------------------------------

xfsdump: level 0 dump of xuegod63.cn:/sdb1

xfsdump: dump date: Fri Nov 17 12:24:53 2017

xfsdump: session id: b5a25fcd-d43d-4308-bf29-142066f89d9a

xfsdump: session label: "dump_sdb1"

xfsdump: ino map phase 1: constructing initial dump list

xfsdump: ino map phase 2: skipping (no pruning necessary)

xfsdump: ino map phase 3: skipping (only one dump stream)

xfsdump: ino map construction complete

xfsdump: estimated dump size: 25856 bytes

============== media label dialog =============================

please enter label for media in drive 0 (timeout in 300 sec)

 -> sdb1  指定設備標簽,就是對要備份的設備做一個描述

media label entered: "sdb1"

 --------------------------------- end dialog --------------------------------

xfsdump: creating dump session media file 0 (media 0, file 0)

xfsdump: dumping ino map

xfsdump: dumping directories

xfsdump: dumping non-directory files

xfsdump: ending media file

xfsdump: media file size 24544 bytes

xfsdump: dump size (non-dir files) : 2592 bytes

xfsdump: dump complete: 46 seconds elapsed

xfsdump: Dump Summary:

xfsdump:   stream 0 /opt/dump_sdb1 OK (success)

xfsdump: Dump Status: SUCCESS

2、 指定備份時免交互操作,方便後期做定時備份

[root@xuegod63 sdb1]# xfsdump -f /opt/dump_passwd /sdb1 -L dump_passwd -M media1

-L  :xfsdump  紀錄每次備份的 session 標頭,這裡可以填寫針對此文件系統的簡易說明

-M  :xfsdump 可以紀錄儲存媒體的標頭,這裡可以填寫此媒體的簡易說明

 

3、指定只備份分區中某個目錄

參數:-s 文件路徑  只對指定的文件進行備份,-s指定時,路徑寫的是相對路徑(-s可以是文件或目錄)

[root@xuegod63 sdb1]# xfsdump -f /opt/dump_grub2 -s grub2/grub.cfg /boot -L dump_grub2 -M boot-sda1

4、查看備份信息與內容

備份成功後,我們就可以在/var/lib/xfsdump/inventory目錄下看到生成的檔案信息

[root@xuegod63 opt]# xfsdump  -I(字母大寫i)

 

測試恢復:先刪除之前創建的內容

[root@xuegod63 sdb1]# ls

passwd  test

[root@xuegod63 sdb1]# pwd

/sdb1

[root@xuegod63 sdb1]# rm -rf ./*

 

4.4.3 文件系統恢復

語法:xfsrestore -f 指定恢覆文件的位置 指定存放恢復後的文件的路徑

[root@xuegod63 opt]# xfsrestore -f /opt/dump_sdb1  /sdb1

查看恢復情況

[root@xuegod63 ~]# ls /sdb1/

恢復單個文件如下:

[root@xuegod63 ~]# mkdir /var/test/

[root@xuegod63 ~]# xfsrestore -f /opt/dump_grub2 -s grub2/grub.cfg /var/test/

[root@xuegod63 ~]# xfsrestore -f /opt/dump_grub2 -s grub2 /var/test/  #恢複目錄

 

註:

使用 xfsdump 時,請註意下麵下麵的幾個限制:
1、xfsdump 不支持沒有掛載的文件系統備份!所以只能備份已掛載的!
2、xfsdump 必須使用 root 的許可權才能操作 (涉及文件系統的關係)
3、xfsdump 只能備份 XFS 文件系統
4、xfsdump 備份下來的數據 (檔案或儲存媒體) 只能讓 xfsrestore 解析
5、xfsdump 是透過文件系統的 UUID 來分辨各個備份檔的,因此不能備份兩個具有相同 UUID 的文件系統

4.4.4 增量備份

概念

       增量備份是指在一次全備份或上一次增量備份後,以後每次的備份只需備份與前一次相比增加或者被修改的文件。這就意味著,第一次增量備份的對象是進行全備後所產生的增加和修改的文件;第二次增量備份的對象是進行第一次增量備份後所產生的增加和修改的文件,以此類推。

優缺點

優點:沒有重覆的備份數據,因此備份的數據量不大,備份所需的時間很短。

缺點:數據恢復相對比較麻煩,它需要上一次全備份和所有增量備份的內容才能夠完全恢覆成功,並且它們必須沿著從全備份到依次增量備份的時間順序逐個反推恢復,因此可能會延長的恢復時間

 

實戰: 增量備份文件系統

準備一個備份目錄進行備份

[root@xuegod63 sdb1]# tree  /sdb1

/sdb1/

├── passwd

└── test

    └── a

對上面的內容進行第一次全備

[root@xuegod63 sdb1]# xfsdump -f /opt/test-full /sdb1 -L test-full -M media0

增加一些內容,然後進行第1次增量備份

[root@xuegod63 ~]# touch  /sdb1/1.txt /sdb1/2.txt

[root@xuegod63 ~]# tree  /sdb1/

/sdb1/

├── 1.txt

├── 2.txt

├── passwd

└── test

└── a

[root@xuegod63 sdb1]# xfsdump -l 1 -f /opt/test-back1 /sdb1 -L test-bak1 -M media0

-l <level>  做一個等級為1的備份

再次增加內容,然後進行level 2級別的增量備

[root@xuegod63 sdb1]# touch  /sdb1/test/a.txt  /sdb1/test/b.txt

[root@xuegod63 ~]# tree /sdb1/

/sdb1/

├── 1.txt

├── 2.txt

├── passwd

└── test

    ├── a

    ├── a.txt

└── b.txt

[root@xuegod63 sdb1]# xfsdump -l 2 -f /opt/test-back2 /sdb1 -L test-bak2 -M media0

[root@xuegod63 ~]# rm -rf /sdb1/*    #刪除所有數據

 

現在進行恢復,要想恢復全部全部數據,包括新添加的文件,如何恢復?

步驟:

       1、先恢復完全備份   

       2、情況1: 恢復最後一次增量備份(如果兩次增量備份都是1級的,所以只需要恢復最後一個增量就可以了。

3、情況2:如果你做的是第一次是1級備,第二次是2級備,那麼你在恢復的時候就需要先恢復完全備份,然後是1級備,最後是2級備)

[root@xuegod63 ~]# xfsrestore -f /opt/test-full /sdb1/

[root@xuegod63 ~]# xfsrestore -f /opt/test-back2 /sdb1/  #故意先恢復back2,查看

[root@xuegod63 ~]# tree /sdb1/  #查看,發現沒有1.txt ,2.txt

/sdb1/

├── passwd

└── test

    ├── a

    ├── a.txt

└── b.txt

[root@xuegod63 ~]# xfsrestore -f /opt/test-back1 /sdb1/  

[root@xuegod63 ~]# tree /sdb1/ 

到此,數據恢覆成功了。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • cobbler簡介 Cobbler是一個Linux伺服器安裝的服務,可以通過網路啟動(PXE)的方式來快速安裝、重裝物理伺服器和虛擬機,同時還可以管理DHCP,DNS等。 Cobbler可以使用命令行方式管理,也提供了基於Web的界面管理工具(cobbler web),還提供了API介面,可以方便二 ...
  • tomcat更新方法最簡單的就是上官網下載最新版的壓縮包,然後用新版本的 lib 文件替換掉舊版本的 lib 文件 具體方法(偷懶做個搬運工):https://jingyan.baidu.com/article/9158e000173f83a25412280b.html ...
  • 前言 本人菜鳥一枚,第一次寫博客,不喜誤噴。 實驗環境 Opensuse15.0(主機)、FreeBSD11.1(虛擬機)、虛擬機VirtualBox5.2.22、mysql8.0.14 在FreeBSD下安裝mysql pkg install mysql80 在 /etc/rc.conf下添加一行 ...
  • 在沒有禁用開源的顯卡驅動 nouveau 下,從 apt 安裝了nvidia的驅動,導致了後面開機後,系統不能正確的識別到顯示器,整個界面解析度變的非常小,在設置菜單中的顯示設置中也不能調節解析度,並有built-in display的提示,推測是兩個顯卡驅動所致,後來又卸載了nvidia的驅動,重 ...
  • 網上的文章鋪天蓋地,適合自己的沒有... 最後老辦法:文章+經驗+嘗試 = 成功,哈哈! 問題和步驟: 1. Xshell 過期了,修改用Free for Home/School版本,https://www.netsarang.com/zh/free-for-home-school/ 前往下載地址, ...
  • 最近需要在mac上連ssh,但是之前在mac上用的都是簡易的SSH Shell,沒有找到傳輸文件的功能。 這時候就非常想念win上的winscp,有個界面,傳點東西還是很直觀的。 幾經搜尋,終於找到一款:zoc 基本滿足了我的需求,ssh,然後有個簡單的文件傳輸。 當然,這個傳輸功能可以用scp來實 ...
  • 簡介 vimtutor是vim這款知名的文本編輯器的學習工具/指南。語法如下。 -g選項和gvimtutor是啟動GUI版本的指南,需要系統支持,一般來說我們只需要鍵入這2種命令形式。 一種啟用英文,一種啟用中文,建議閱讀英文指南。 當我們運行vimtutor的時候,看到是有點類似於man手冊的幫助 ...
  • 基本概念 套介面也就是網路中的ID。網路通信,歸根到底還是進程間通信(不同電腦上的進程間的通信)。在網路中,每一個節點(電腦或路由器)都有一個網路地址,也就是IP地址。 IP地址:在網路中唯一標識一臺主機 埠號:在主機中唯一標識一個進程 IP+port:在網路環境中唯一標識一個進程(socke ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...