1. 程式人生 > 其它 >網際網路架構 之備份伺服器 rsync

網際網路架構 之備份伺服器 rsync

raid卡

緩衝區(buffer)與快取(cache)

https://www.cnblogs.com/mlgjb/p/7991903.html

怎麼調整網絡卡名稱?

選中install centos7 引導項,然後按Tab,然後輸入方框中的內容:net.ifnames=0 biosdevname=0

https://www.cnblogs.com/linhaifeng/%E6%89%B9/6295875.html

https://www.cnblogs.com/linhaifeng/p/6045600.html

services.msc #開啟Windows服務

msconfig.exe #開啟系統配置工具

sc delete +服務名 #在命令列刪除某個服務

C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup

#希望一個應用程式開機啟動,可以將程式的執行檔案的快捷方式放到這兩個資料夾中的一個即可

bcdedit.exe

cpu的向下相容性

32位和64位指32位和64位的二進位制數

針對32位的cpu寫的程式可以在64位的cpu上執行,反之不行

ROM read only memory 只讀儲存

SRAM 靜態隨機儲存(快取記憶體Cache)

DRAM 動態隨機儲存(記憶體)

8個2進位制位組成一個位元組,即8bit=1Bytes

1024Bytes=1kB

扇區是512個Bytes,硬碟上最小的讀寫單位

block塊 Linux中 8個扇區=1block =4kB

一毛一毛的去花錢很費勁,就出現了1塊和100塊

虛擬記憶體:記憶體地址和硬碟地址的對映關係

CPU的指令集分為需要特權的指令集和一般的指令集,所有的I/O指令屬於需要特權的指令,一般使用者不能執行這類指令,只有作業系統核心才能執行這類指令。

CPU有個特殊的狀態暫存器,其中顯示當前的CPU處於核心態還是使用者態

使用者程式通過執行一個特殊的in指令t(intel x86的CPU)來獲取作業系統的服務,重點是CPU在執行這條指令時,自動將狀態置為核心態。

作業系統由作業系統的核心和系統呼叫兩部分組成

乙太網協議(資料鏈路層)的規定

一組電訊號為一個數據包,叫做幀

每一個幀包含head報頭和data資料

head報頭(固定18個位元組)包含

傳送者/源地址 6位元組

接收者/目的地址 6位元組、

資料型別 6位元組

接入internet的裝置必須具有網絡卡,傳送者和接受者的地址就是網絡卡的地址,即mac地址

每一塊網絡卡上都有一個唯一的mac地址,通常由12位16進位制數表示,前6位是廠商編號,後6位是流水號

IP地址的格式:網路地址+主機地址

網路地址用來表示這個IP地址屬於哪一個子網

子網之間通過閘道器(相當於子網的代理人)來通訊,跨子網通訊要IP地址,子網內通訊要mac地址

IP地址和子網掩碼確定網路地址

cmd基礎

cd =change directory 更改目錄

同一個盤內不同目錄之間的切換: 原目錄cd 新目錄

跨盤切換要先切換到目標盤,然後會自動切換到最近一次在D盤的位置

顯示的D盤路徑是最近一次在D盤的位置

切換到上一級目錄cd ..

檢視當前目錄中的內容:目錄dir

檢視本機上所有的ip地址

D:\Program Files>ipconfig

mkdir =make directory 建立目錄

下圖在D盤(當前路徑)建立了一個名為"目錄"的資料夾,還可以指定路徑

第一條語句建立了兩個資料夾分別為Program和Files,而且Files中有子資料夾page

第一條語句建立了一個資料夾ProgramFiles,其中有子資料夾page

刪除資料夾,當有多層資料夾的時候,用del命令刪除要從裡往外刪除

用RD命令可以直接刪除外層的資料夾

hwclock #檢視硬體時間,即RTC

hwclock -s #set the system time from the RTC

init 0 表示關機

init 6 表示重啟

shutdown -h now 立即關機

su - jinzhi 切換到使用者 jinzhijinzhi 是使用者名稱

同時按住CTRL+ALT+F1~F6鍵來切換不同使用者的終端

改密碼的兩種方法

passwd 使用者名稱 #修改指定使用者的密碼,新密碼要輸入兩次

echo 新密碼 | passwd -- stdin 使用者名稱 這種方法只有root使用者才能使用

passwd [選項] 使用者名稱

pwd 檢視當前路徑

wget 用來從指定的URL下載檔案

scp

scp命令可以在linux伺服器之間複製檔案和目錄

cal 檢視當前月份的日曆,也可以指定月份和年份

cp 只是在本機進行拷貝不能跨伺服器

切換目錄

cd .. 切換到上一級目錄

cd - 切換到上一次所在的目錄

ls命令檢視目錄

ls /home/rose 注意要有空格,ls命令預設檢視目錄的內容,即子檔案和子資料夾

ls -d /home/rose 檢視home/rose目錄本身

ls -ld /home/rose 檢視/home/rose 目錄本身的詳細資訊(見下圖)

ls -l /home/rose 檢視/home/rose 目錄中子檔案和子資料夾的詳細資訊

ls -l 等價於 ll

(74位元組表示大小,建立時間)

/home/rose 目錄的屬主和屬組,因為是root使用者建立的該目錄

rwx表示屬主的許可權,r-x表示屬組的許可權,r-x表示除了屬主和屬組以外其他使用者的許可權

下圖中 r=4表示讀許可權,w=2表示寫許可權,x=1表示執行許可權

chown=change owner

chown rose.rose /home/rose #將目錄/home/rose的屬主和屬組分別改為rose和rose

chown -R rose.rose /home/rose #將目錄/home/rose以及目錄下所有檔案和資料夾的屬主和屬組分別改為rose和rose #R表示遞迴地改

chown rose.mail /var/spool/mail/rose #將郵箱/var/spool/mail/rose 屬主和屬組分別改為rose和mail

下圖中

d開頭的表示目錄,-開頭的表示普通檔案,b開頭的表示磁碟檔案

ls --help | less 以分頁方式檢視ls的幫助,退出按q鍵

a) bin目錄:用來存放常用的可執行檔案

b) sbin目錄:用來存放系統的可執行檔案

e) etc目錄:配置檔案目錄

dev 裝置檔案

ls -a /home/egon #檢視egon家目錄下所有的檔案(包含隱藏檔案,檔名以點開頭)

ls /home/egon #檢視egon家目錄下所有的非隱藏檔案

目錄管理

新建目錄

mkdir /a

mkdir /a/d 要先新建a,然後才可以在a裡面新建d資料夾

直接新建多層目錄的方法

mkdir -p /a/d/e/f

#-p或--parents 若所要建立目錄的上層目錄目前尚未建立,則會一併建立上層目錄;

修改目錄

mv /a/d /a/d1 將d修改為d1

mv /a/e /b/ 將e移動到b目錄下

mv /a/e /b/e1 將e移動到b目錄下,並且重新命名為e1

刪除目錄

rm /a/d d為一個目錄,無法直接刪除

rm -rf /a/d 遞迴地刪除d目錄,即將d和d目錄下的子檔案及子資料夾一起刪除

檔案管理

新建檔案

touch a.txt 在當前目錄下新建一個a.txt檔案,沒有指定路徑,可以在檔案前面指定路徑

修改檔案

mv a.txt b.txt 將當前目錄下的一個a.txt檔案改為b.txt

rm b.txt 當前目錄下的一個b.txt 檔案刪除

rm -f b.txt 直接刪除,不詢問,直接刪除

cat命令檢視檔案內容

cat /etc/passwd 檢視使用者資訊

less /etc/passwd 分頁檢視

head /etc/passwd 預設檢視前10行

head -n 1 /etc/passwd 指定檢視前1行

tail /etc/passwd 預設檢視後10行

tail -n 1 /etc/passwd 指定檢視最後1行

tail -f /etc/passwd 檢視新增的內容

cp /etc/passwd /temp/passwd_new #複製檔案

echo aaaaaaa > /tem/aaa.txt #以覆蓋的方式寫

echo aaaaaaa >> /tem/aaa.txt #以追加的方式寫

history 檢視歷史命令

!命令序號 可以重新執行對應的命令

使用者管理

useradd -u 1002 -g jinzhi -d /test_user -c 'xxx' -s /bin/bash test_user #新增使用者

-u指定使用者id,-g指定使用者所在的主要的組名(如果是-G指定使用者所在的非主要的組), -d指定使用者的家目錄,-c指定描述資訊,-s 登陸的shell

/etc/group中,成員所在的主要的組不會列出該成員的名稱,成員所在的主要的組會列出該成員的名稱

id 使用者名稱 #檢視使用者的id

userdel egon #userdel -r egon #都刪除了

bin/bash 表示可登入的使用者

x 表示密碼佔位符,該使用者登入需要輸入密碼

sbin/nologin 表示不可登入的使用者

VIM編輯器

vim /etc/passwd 開啟passwd 檔案(剛開啟的時候命令列模式),按a以後進入編輯模式,編輯完了按Esc 退出編輯模式進入命令列模式,然後 輸入冒號進入擴充套件模式和w儲存,在按q推出,a=append,i=insert ,o表示游標定位到當前行的下一行,O表示游標定位到當前行的上一行

在命令列模式下刪除與複製的操作

dd 刪除游標所在行

DD 刪除游標所在空行

任一數字鍵 +dd 刪除游標所在行及其後面的所有行

yy 複製游標所在行內容

任一數字鍵 +yy 複製游標所在行及其後面的所有行

p 貼上在游標所在行的下一行

u 取消操作

ctrl +r 恢復操作

G 游標移動到檔案的最後一行

gg 游標移動到檔案的第一行

H 游標移動到螢幕第一行

G 游標移動到螢幕的最後一行

M 游標移動到螢幕的中間一行

在命令列模式下查詢命令:/內容

在擴充套件模式下

替換命令:%s /shutdown/sb/g #g表示全部替換,不加g只替換每行中找到的第一個

新增行號:set nu

vim /etc/shadow #shadow 存放密碼經過加密轉換後的訊息

vim /etc/group 組資訊

組名 組密碼佔位符 組id 組成員

下圖中的組都沒有組成員,可以為組新增組成員

組管理

groupadd group1 #新建一個組

groupdel group1 #刪除組

groupmod -g 1083 group1 #將group1 的組ID改為1083

groupmod -n group2 group1 #將group1 的組名改為group2

檢視普通使用者郵箱

ls /var/spool/mail/

ll /var/spool/mail/

touch /var/spool/mail/rose #給rose 使用者建郵箱

和使用者有關的6個檔案

/etc/passwd

/etc/shadow

/etc/group

/etc/gshadow

/var/spool/mail/

/home/rose #使用者名稱rose的家目錄

屬主屬組其他人對檔案的rwx許可權

u=user g=group o=others

root使用者建了一個a.txt,

chmod o=- a.txt #等號=是賦予許可權,也可以使用+或者-在已有的許可權基礎上增加或者減少許可權

chmod o+r a.txt #在已有的許可權基礎上增加r讀許可權

chmod o=rx a.txt #x是執行許可權,前提是要有r讀許可權

chmod o-x a.txt #在已有的許可權基礎上減少執行許可權

o=-表示其他使用者沒有任何許可權

r=4表示讀許可權,w=2表示寫許可權,x=1表示執行許可權

chmod 744 a.txt #7=4+4+1表示user,group和others的許可權

對檔案的執行許可權是指把檔案當作一個命令去執行。

可以通過cd命令切換到檔案所在目錄 ,然後 ./filename 來執行

usermod -G egon tom #將tom加入egon組,egon組為tom的非主要的組

某個使用者對某個檔案沒有許可權,但是某個組對該檔案有許可權,把那個使用者新增到那個組,那個使用者擁有那個組的許可權。不過使用者需要重新登陸

屬主屬組其他人對目錄的rwx許可權

u=user g=group o=others

對目錄的讀許可權是指可以看到目錄下有哪些子檔案和子資料夾

對目錄的寫許可權指可以在該目錄下新建資料夾,刪除資料夾,,修改資料夾名稱,刪除檔案,新建檔案等

對目錄的執行許可權是指可以通過cd命令切換到該目錄

對目錄的寫許可權要和執行許可權同時出現,因為要先進到目錄中,才可以進行寫操作,擁有執行許可權才可以進到目錄中

chmod o=r /test #對others 賦予對目錄/test的讀許可權

chmod o=wx #對others 賦予對目錄/test的寫和執行許可權,

tar歸檔(不是壓縮)命令

c表示create,f表示檔案,v表示詳細資訊,x表示拆檔,-C指定目標位置

.tar字尾沒有任何意義,這樣命名歸檔檔案是為了以後檢視方便

檔案壓縮和解壓縮

gzip 檔案壓縮以後會帶.gz字尾,對應cvzf

gunzip 檔案解壓縮以後不帶.gz字尾

可以先歸檔再壓縮

也可以歸檔的同時就壓縮

tar cvzf test1.tar.gz a.txt b.txt c.txt #cvzf 中的z表示壓縮,cvjf 也可以壓縮

.gz是自己加的,方便檢視,一看就知道是壓縮過的,不加.gz的話,用gunzip解壓縮會解不了

bzip2 test.tar1 壓縮 ,對應cvjf

bunzip2 test.tar1.bz2 解壓縮

用一個解壓縮方法解壓兩種壓縮檔案

tar xf test.tar.gz -C /test1 #-C指定解壓的目標位置

tar xf test.tar1.bz2 -C /test2

目錄壓縮和解壓縮

tar cvzf test.tar.gz /etc/ 壓縮目錄

tar xf test.tar.gz -C /test2 解壓目錄,test2中會有一個etc資料夾

tar cvzf etc1.tar.gz /etc/* 壓縮目錄下的所有子檔案和子資料夾

先切換到etc目錄下,然後用下面相對路徑的方式壓縮,解壓的時候不會出現etc資料夾

tar cvzf etc1.tar.gz *

tar xf etc1.tar.gz -C /test3 解壓目錄,test3不會有一個etc資料夾,直接出來etc目錄下的檔案和資料夾

磁碟分割槽

ls /dev/sda #s=SCSI介面Small Computer System Interface,d=disk,a表示機器上接的第一塊硬碟

ls /dev/sd 輸入這條命令後按tab鍵會出來sd下的 sda sda1 sda2 sda3 sdb等

df #df命令開啟以下內容

fdisk -l /dev/sdb #檢視第二個盤的分割槽資訊

fdisk -l /dev/sda #檢視第一個硬碟的分割槽資訊

第一個硬碟sda在裝系統的時候已經分了三個區:sda1 sda2 sda3,看第二個硬碟sdb 還沒有分割槽

dos分割槽方式只能應對硬碟容量<=2T的分割槽,fdisk 命令用的就是dos分割槽方式

fdisk /dev/sdb 準備開始對sdb 盤進行分割槽

最多隻能分4個主分割槽,主分割槽可以用來裝系統和引導資訊,擴充套件分割槽中可以再劃分邏輯分割槽,邏輯分割槽不可以裝系統,通常分完主分割槽後剩餘的空間給擴充套件分割槽,擴充套件分割槽不是主分割槽但會佔用主分割槽的一個編號,如果分了4個主分割槽後磁碟空間還有剩餘,也不能分擴充套件分割槽了。

fdisk命令列表中常用的命令:

d:刪除一個(已經存在的)分割槽,其中d是delete的第1個字母。

m:列出fdisk中使用的所有命令,其中m是menu的第1個字母。

n:新增一個新的分割槽,其中n是new的第1個字母。

p:列出分割槽表的內容,其中p是print的第1個字母。q:退出fdisk,但是不儲存所做的變化,其中q是quit的第1個字母

w:退出fdisk並存儲所做的變化,其中w是write的第1個字母。

磁碟格式化(製作檔案系統)

mkfs=make file system

mkfs.xfs /dev/sdb1 #將sdb1這個分割槽格式化為xfs的格式

mkfs.ext4 /dev/sdb3 #將sdb3這個分割槽格式化為ext4的格式

xfs和ext4兩個都是日誌檔案系統

mount掛載(將目錄和磁碟分割槽對應)

mkdir /sdb1 #目錄的名字隨意,只要將對應的磁碟分割槽掛載到對應的目錄就可以,一個磁碟分割槽可以掛載到多個目錄,相當於開多個口子

mkdir /sdb3 #目錄的名字隨意只要將對應的磁碟分割槽掛載到對應的目錄就可以

mount /dev/sdb1 /sdb1

mount /dev/sdb3 /sdb3

mount 命令檢視掛載

df -h #檢視檔案系統資訊,似乎比df看得清楚一點

df -hT 或者df -Th ,加T會增加顯示檔案系統型別一列

解除安裝

umount /dev/sdb3

umount -l /dev/sdb3 #強制解除安裝(cd sdb3 中的時候,通過umount /dev/sdb3 無法解除安裝)

ext4檔案系統

檔案系統是管理分割槽檔案的,檔案系統的工作機制,有4種塊superblolck ,innode ,directory 存放檔名和關聯的innode 號,存放檔案內容的塊

刪除檔案的時候,innode 塊變成free狀態,directory 中檔名和innode 號關聯關係解除

有superblolck 塊,用來管理其他的塊(其他的塊用來做儲存),記錄其他塊的狀態

innode 塊 #存放檔案資訊,如innode 編號,檔案型別,許可權,屬主,指標等,建一個檔案就有一個innode 塊

#存放目錄資訊,目錄型別

df -i /sdb3 #檢視目錄/sdb3 下 的innode 資訊,有多少innode號,已經用了多少等

innode 編號用完了以後,即使還有磁碟空間,也不能新建檔案了,

df -i檢視所有目錄下的innode 資訊

ls -di /sdb3/ #檢視目錄/sdb3 本身的innode號

ls -i /sdb3/filename #檢視目錄下某個檔案的innode 號

du -sh /sdb3 #檢視目錄下檔案的大小

軟連結

軟連結是指向檔名的(下圖),可以跨分割槽,即軟連結和原始檔可以不在同一個分割槽

ln -s /test/a.txt /test0/a.txt #建立/test/a.txt的軟連結/test0/a.txt

ll /test0/a.txt #詳細資訊中第一字母l表示檔案型別是連結

rm /test/a.txt #刪除原始檔後再通過 cat test0/a.txt 軟連結檢視就找不到了

刪除原始檔/test/a.txt再通過 echo xxxxx >> test0/a.txt 軟連結向原始檔寫入內容,相當於又新建了一個a.txt檔案,

硬連結

硬連結是指向innode號,不可以跨分割槽,即硬連結和原始檔必須在同一個分割槽,刪除原始檔後可以通過連結找到innode號,進而找到檔案內容所在的block塊

虛擬記憶體(交換分割槽)

檢視swap分割槽資訊 swapon -s

mkswap /dev/sdb4 #用/dev/sdb4分割槽建立虛擬記憶體

swapon -a /dev/sdb4 #啟用這個虛擬記憶體,類似掛載

swapoff /dev/sdb4 類似解除安裝

free 命令檢視記憶體資訊,就是讀取/proc/meminfo中的部分內容

free -m 以M兆為單位顯示

cat /proc/meminfo #檢視記憶體資訊

cat /proc/cpuinfo #檢視cpu資訊

將記憶體劃分各個空間,每個程式獨佔一塊,相互之間不影響,兩個程式之間要交換資料的話,就再單獨劃分一個共享的記憶體空間

uname -a 檢視系統資訊

cat /etc/redhat-release 也可以檢視系統資訊

記憶體的作用就是分配buffer和cache 給程式使用

buffer和cache

    • A buffer is something that has yet to be "written" to disk.
    • A cache is something that has been "read" from the disk and stored for later use.

程序管理

top #檢視系統資訊

process status

Global Regular Expression Print 全域性正則表示式

rpm 軟體包管理

which指令會在環境變數$PATH設定的目錄裡查詢符合條件的檔案

yum軟體包管理

yum install和yum localinstall的區別

yum install會去yum倉庫查詢相應的軟體並安裝,倉庫中的軟體都是解決了依賴關係的,而yum localinstall是用來安裝本地rpm包的命令,首先rpm包要先下載到本地,然後在本地目錄執行yum localinstall *.rpm,yum會自動搜尋依賴關係並安裝而rmp -i *.rpm不會自行解決依賴關係,缺少依賴就會報錯

原始碼安裝(編譯安裝)

原始碼安裝步驟

py

nginx服務

nginx -t # 檢查nginx配置檔案語法是否有錯誤

(統一資源定位符) # 找到某個軟體

# 使用者要這個軟體到某個目錄下找到某個檔案通過http協議傳給他

nginx反向代理

網路檔案系統

Network File System(nfs)

rpc =remote process call 遠端過程呼叫

rpcbind 和 nfs-utils 是兩個包

yum install rpcbind nfs-utils -y

網路配置

nmcli c reload TYPE="Ethernet"

PROXY_METHOD="none"

BROWSER_ONLY="no"

BOOTPROTO="dhcp"

DEFROUTE="yes"

IPV4_FAILURE_FATAL="no"

IPV6INIT="yes"

IPV6_AUTOCONF="yes"

IPV6_DEFROUTE="yes"

IPV6_FAILURE_FATAL="no"

IPV6_ADDR_GEN_MODE="stable-privacy"

NAME="ens160"

UUID="61201ec6-f7fb-49f4-9925-85480e44c335"

DEVICE="ens160"

ONBOOT="yes"

IPV6_PRIVACY="no"

改了

BOOTPROTO="static"

IPADDR=192.168.1.66

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

DNS1=192.168.1.1

vim /etc/hosts #本地解析檔案:給一個ip地址起一個名字,以後直接用這個名字的時候,就可以解析成對應的ip地址

hostname # 檢視主機名

hostnamectl set-hostname db01 #設定主機名

source

當修改了/etc/profile檔案,想讓它立刻生效,而不用重新登入;這時就想到用source命令,如:source /etc/profile

source filename 或 . filename

在Linux下可以使用blkid命令對查詢裝置上所採用檔案系統型別進行查詢。

mysqladmin --version #檢視mysql的版本

vim /etc/sysconfig/network-scripts/ifcfg-

從遠端主機複製檔案到本機

遠端主機地址+檔案所在路徑 #複製到本機當前路徑,並且名為nginx.conf

scp [email protected]:/etc/nginx/nginx.conf nginx.conf

scp [email protected]:/usr/bin/dnf-3 dnf-3

本文來自部落格園,作者:近知,轉載請註明原文連結:https://www.cnblogs.com/landson/p/15451599.html