Linux經常使用總結

CentOS 7.0中一個最主要的改變,就是切換到了systemd。它用於替代紅帽企業版Linux前任版本中的SysV和Upstart,對系統和服務進行管理。systemd兼容SysV和Linux標準組的啓動腳本。html

Systemd是一個Linux操做系統下的系統和服務管理器。它被設計成向後兼容SysV啓動腳本,並提供了大量的特性,如開機時平行啓動系統服務,按需啓動守護進程,支持系統狀態快照,或者基於依賴的服務控制邏輯。node

先前的使用SysV初始化或Upstart的紅帽企業版Linux版本中,使用位於/etc/rc.d/init.d/目錄中的bash初始化腳本進行管理。而在RHEL 7/CentOS 7中,這些啓動腳本被服務單元取代了。服務單元以.service文件擴展結束,提供了與初始化腳本一樣的用途。要查看、啓動、中止、重啓、啓用或者禁用系統服務,你要使用systemctl來代替舊的service命令。python

注:爲了向後兼容,舊的service命令在CentOS 7中仍然可用,它會重定向全部命令到新的systemctl工具。

例如

啓動一個服務:systemctl start firewalld.service
關閉一個服務:systemctl stop firewalld.service
重啓一個服務:systemctl restart firewalld.service
顯示一個服務的狀態:systemctl status firewalld.service
在開機時啓用一個服務:systemctl enable firewalld.service
在開機時禁用一個服務:systemctl disable firewalld.service
查看服務是否開機啓動:systemctl is-enabled firewalld.service
查看已啓動的服務列表:systemctl list-unit-files|grep enabled
查看啓動失敗的服務列表:systemctl --failed 
View Code

防火牆

啓動: systemctl start firewalld
查看狀態: systemctl status firewalld 
中止: systemctl disable firewalld
禁用: systemctl stop firewalld

配置firewalld-cmd
查看版本: firewall-cmd --version
查看幫助: firewall-cmd --help
顯示狀態: firewall-cmd --state
查看全部打開的端口: firewall-cmd --zone=public --list-ports
更新防火牆規則: firewall-cmd --reload
查看區域信息:  firewall-cmd --get-active-zones
查看指定接口所屬區域: firewall-cmd --get-zone-of-interface=eth0
拒絕全部包:firewall-cmd --panic-on
取消拒絕狀態: firewall-cmd --panic-off
查看是否拒絕: firewall-cmd --query-panic

添加
firewall-cmd --zone=public --add-port=80/tcp --permanent    (--permanent永久生效,沒有此參數重啓後失效)
從新載入
firewall-cmd --reload
查看
firewall-cmd --zone= public --query-port=80/tcp
刪除
firewall-cmd --zone= public --remove-port=80/tcp --permanent 
SELinux
查看狀態
[root@dev-server ~]# getenforce
Disabled
[root@dev-server ~]# /usr/sbin/sestatus -v
SELinux status:                 disabled

臨時關閉
##設置SELinux 成爲permissive模式
##setenforce 1 設置SELinux 成爲enforcing模式
setenforce 0

永久關閉
vi /etc/selinux/config
將SELINUX=enforcing改成SELINUX=disabled 
設置後須要重啓才能生效
View Code

安裝nginx報錯mysql

./configure 時提示如下錯誤:

checking for OS
 + Linux 2.6.32-431.el6.x86_64 x86_64

checking for C compiler ... not foun

yum -y install gcc gcc-c++ autoconf automake make

 ./configure: error: SSL modules require the OpenSSL library.

yum -y install openssl openssl-devel
View Code

SSH免祕鑰登陸linux

1.ssh-keygen  等同於ssh-keygen -t rsa
    .ssh/.id_rsa 私鑰
    .ssh/.id_rsa.pub 公鑰
2. 把公鑰copy到要登陸的目標機器上
    cd  /root/.ssh
    scp -rp id_rsa.pu root@192.168.10.35:/root/.ssh #把本地文件copy到遠程
    scp -rp root@192.168.10.35:/root/.ssh/id_rsa.pu /tmp/ #把遠程文件copy到本地
    
3(手動寫入). 在目標機器上,把id_rsa.pub裏的key取出寫入.ssh/authorized_keys
    查看當前用戶id, whoami
    su - root 切換用戶
    cd /root/.ssh
    cat id_rsa.pub >authorized_keys 讀出id_rsa.pub的內容並寫入到>後的文件,(覆蓋)
    cat id_rsa.pub >>authorized_keys 讀出id_rsa.pub的內容並寫入到>後的文件,(追加)
authorized_keys的權限要是600!!! 
只有用戶本身有寫權限。不然驗證無效

4.自動寫入
ssh-copy-id -i ~/.ssh/id_rsa.pub  192.168.198.132
輸入遠程機器密碼就能夠了
ssh免祕鑰
1ssh-keygen作密碼驗證可使在向對方機器上ssh ,scp不用使用密碼.具體方法以下:
2、兩個節點都執行操做:#ssh-keygen -t rsa而後所有回車,採用默認值.
3、這樣生成了一對密鑰,存放在用戶目錄的~/.ssh下。將公鑰考到對方機器的用戶目錄下
,並將其複製到~/.ssh/authorized_keys中(操做命令:#cat id_dsa.pub >> ~/.ssh/authorized_keys)。
4、設置文件和目錄權限:
設置authorized_keys權限
$ chmod 600 authorized_keys 
設置.ssh目錄權限
$ chmod 700 -R .ssh
5、要保證.ssh和authorized_keys都只有用戶本身有寫權限。不然驗證無效。

注意:1:以下是ssh 端口不是22,就用-p 指定,注意加引號。
     2:公鑰也能夠用scp傳遞到你要免祕鑰登陸的這臺機器上,而後追加到祕鑰登陸的這臺機器的authorized_keys文件裏
ssh免祕鑰雙向

 Dell R730來電自啓nginx

能夠重啓到服務器的BIOS裏看看,System Scurity這項裏面的 AC Power Recovery裏選擇,以下圖中的,Last是停電以前的狀態(停電以前是開機的狀態就開機,關機的狀態就不開機),On是來電就開機,Off是來電不開機。 

 Crond定時任務c++

https://www.cnblogs.com/p0st/p/9482167.html

常見日誌web

/var/log/messages ---> 總體系統信息,其中也包含系統啓動期間的日誌。
/var/log/dmesg ---> 內核緩衝信息(kernel ring buffer)。用dmesg查看系統啓動信息。
/var/log/auth.log ---> 系統受權信息,包括用戶登陸和使用的權限機制等。
/var/log/boot.log ---> 系統啓動時的日誌。
/var/log/daemon.log ---> 系統後臺守護進程日誌信息。
/var/log/dpkg.log ---> 安裝或dpkg命令清除軟件包的日誌。
/var/log/kern.log ---> 內核產生的日誌。
/var/log/lastlog ---> 記錄全部用戶的最近信息。用lastlog命令查看內容。
/var/log/maillog 或 /var/log/mail.log ---> 電子郵件服務器的日誌信息。
/var/log/user.log ---> 記錄全部等級用戶信息的日誌。
/var/log/alternatives.log ---> 更新替代信息都記錄在這個文件中。
/var/log/btmp ---> 記錄全部失敗登陸信息(用戶、時間以及遠程IP地址)。使用last命令查看,例如:last -f /var/log/btmp | more。
/var/log/cups ---> 涉及全部打印信息的日誌。
/var/log/anaconda.log ---> Linux系統安裝信息。
/var/log/yum.log ---> 使用yum安裝的軟件包信息。
/var/log/cron ---> crond計劃任務服務執行狀況。
/var/log/secure ---> 系統安全日誌、驗證和受權信息。
/var/log/wtmp或/var/log/utmp ---> 登陸信息。使用 w/who/finger/id/last/lastlog/ac 進行查看。
/var/log/faillog ---> 用戶登陸失敗信息。
默認文件的權限是666,目錄的權限是777,umask是222
View Code

流量監控工具spring

nethogs: 按進程查看流量佔用
iptraf: 按鏈接/端口查看流量
ifstat: 按設備查看流量
ethtool: 診斷工具
tcpdump: 抓包工具
ss: 鏈接查看工具
其餘: dstat, slurm, nload, bmon
View Code

重定向及標準輸入,輸出,錯誤相關sql

一般狀況,每一個 Unix 程序在啓動時都會打開三個流,一個用於輸入,一個用於輸出,一個用於打印診斷或錯誤消息。它們分別被作:標準輸入,標準輸出,標準錯誤。

文件描述符: POSIX 定義了STDIN_FILENO、STDOUT_FILENO 和 STDERR_FILENO 來代替 0、一、2。這三個符號常量的定義位於頭文件 unistd.h。


標準輸入 (stdin) :文件描述符爲 0 ,使用 < 或 << ;其實能夠理解爲這個箭頭指向哪裏數據就往哪裏跑.這裏是輸入(stdin).命令就經過<來獲取數據.等於數據是從左邊往命令裏面流.

標準輸出 (stdout):文件描述符爲 1 ,使用 > 或 >> ;輸出的時候不能用<或者<<,由於命令老是在前面.這裏命令要輸出數據.因此數據的來源是命令,數據就會隨着箭頭指向你給的方向.

標準錯誤輸出(stderr):文件描述符爲 2 ,使用 2> 或 2>>;


1.command >file 2>&1 等價於1>/dev/null 和2>/dev/null 和&/dev/null
首先command >file 2>file 的意思是將命令所產生的標準輸出信息,和錯誤的輸出信息送到file中;command>file 2>file 這樣的寫法,stdout和stderr都直接送到file中, file會被打開兩次,這樣stdout和stderr會互相覆蓋,這樣寫至關使用了兩個同時去搶佔file的管道.定向了2次。
那若是使用command >file 2>&1 這條命令就將stdout直接送向file,stderr 繼承了第一次重定向(FD1)到管道後,再被送往file,此時,file 只被打開了一次,也只使用了一個管道FD1,它包括了stdout和stderr的內容。

2./dev/null
Linux下還有一個非凡的文件/dev/null,它就像一個無底洞,全部重定向到它的信息都會消失得無影無蹤。這一點很是有用,當咱們不須要回顯程序的全部信息時,就能夠將輸出重定向到/dev/null。
假如想要正常輸出和錯誤信息都不顯示,則要把標準輸出和標準錯誤都重定向到/dev/null
>/dev/null表示將程序經過printf或者fprintf打印到handle爲1的stdout文件的信息,送到/dev/null空洞文件。
 
View Code

因此在執行shell腳本或者在shell腳本中不想看到輸出是使用 command >/dev/null/ 2>&1或者找一個專門的日誌文件command >/dev/null/ 2>&1

mysql數據庫備份工具

mysqldump 小於200G
xtrabackup  大於200G
View Code

分割大文件

用法:split [選項]... [輸入 [前綴]]
將輸入內容拆分爲固定大小的分片並輸出到"前綴aa""前綴ab",...;
默認以 1000 行爲拆分單位,默認前綴爲"x"。若是不指定文件,或
者文件爲"-",則從標準輸入讀取數據。


長選項必須使用的參數對於短選項時也是必需使用的。
  -a, --suffix-length=N 指定後綴長度爲N (默認爲2)
  -b, --bytes=大小 指定每一個輸出文件的字節大小
  -C, --line-bytes=大小 指定每一個輸出文件裏最大行字節大小
  -d, --numeric-suffixes 使用數字後綴代替字母后綴
  -l, --lines=數值 指定每一個輸出文件有多少行
      --verbose 在每一個輸出文件打開前輸出文件特徵
      --help 顯示此幫助信息並退出
      --version 顯示版本信息並退出


SIZE 能夠是一個可選的整數,後面跟着如下單位中的一個:
KB 1000,K 1024,MB 1000*1000,M 1024*1024,還有 G、T、P、E、Z、Y。



如過想指定每一個分割的文件行數來分割

split -l 12000000 192.168.61.5_bak.txt -d -a 6

通過分割測試發現一千兩百萬行時每一個文件大概700MB。



如過想指定每一個分割的文件大小來分割

指定每一個子文件700MB大小 文件後綴用字符區分

split -b 734003200 192.168.61.5_bak.txt  -a 6
View Code

分卷壓縮與解壓

1.分卷壓縮,使用tar+split組合 
進入網站目錄,執行: 
tar cvzf - gaojinbo.com| split -b 900m  - logs.tar.bz2.
 
2.合併 
cat logs.tar.bz2.* > gaojinbo.com.tar.gz


3.解壓 
tar xvzf gaojinbo.com.tar.gz

tar命令參數簡述
參數:
-j : 經過bzip2進行壓縮\解壓文件*.tar.bz2
-z : 經過gzip進行壓縮\解壓文件*.tar.gz
-c : 新建打包文件,可搭配-v來查看過程當中被打包的文件名
-t : 查看打包文件的內容有哪些文件名
-x : 解壓打包文件.
-v : 在壓縮/解壓過程當中,顯示正在處理的文件名
-f : -f後面接被處理的文件名
-C(大寫) : 後接目錄
-p : 保留備份數據的本來權限與屬性
-P :    保留絕對路徑,即容許備份數據中含有根目錄存在的目錄(危險)
經常使用:欲壓縮或打包的文件或目錄(/*)
bzip2壓縮命令:tar -jcv -f boot.tar.bz2 /boot
gzip壓縮命令 :tar -zcv -f boot.tar.gz  /boot
bzip2查看命令:tar -jtv -f /dir/*.tar.bz2
gzip 查看命令:tar -ztv -f /dir/*.tar.gz
bzip2解壓縮命令:tar -jxv -f /dir/*.tar.bz2 -C 欲解壓縮的目錄
gzip解壓縮命令 :tar -zxv -f /dir/*.tar.gz 欲解壓縮的目錄
特殊:
備份重要的系統數據,包括其完整的權限(-p參數):     tar -jcvp -f /root/etc.tar.bz2 /etc
只解壓壓縮文件內的其中一個文件:                          tar -jxv -f /root/etc.tar.bz2 etc/shadow
打包目錄,但不含該目錄下的某些文件(--exclude):
tar -jcv -f /root/system.tar.bz2  --exclude=root/etc* --exclude=root/system.tar.bz2 /etc /root
僅備份比某個時刻還要新的文件:
備份    :tar -jcv -f /root/etc.newer.2011.02.16.tar.bz2 –newer-mtime='2011-02-16' /etc/*
查看備份:tar -jtv -f etc.newer.2011.02.16.tar.bz2
注意:在備份文件的時候也備份它的父目錄
View Code

/etc/services文件做用

/etc/services文件是記錄網絡服務名和它們對應使用的端口號及協議。文件中的每一行對應一種服務,它由4個字段組成,中間用TAB或空格分隔,分別表示「服務名稱」、「使用端口」、「協議名稱」以及「別名」。

文件包含了服務名和端口號之間的映射,不少的系統程序要使用這個文件。通常狀況下,不要修改該文件的內容,由於這些設置都是Internet標準的設置。一旦修改,可能會形成系統衝突,使用戶沒法正常訪問資源。
Linux系統的端口號的範圍爲0–65535,不一樣範圍有不一樣的意義。

端口範圍
    0 不使用
    1--1023 系統保留,只能由root用戶使用
    1024---4999 由客戶端程序自由分配
    5000---65535 由服務器端程序自由分配
View Code

目錄詳解

參考一  參考二

hydra使用

hydra -l root -P /home/post/pass.txt -M /home/post/ip.txt -t 2 ssh -s 62822
hydra -L user.txt -p 'pass' -t 10 -vV smtp://qiye.163..com/  -o save.log  爆破郵箱
hydra -C /root/Desktop/2.txt -t 1 -vV smtp://smtp.xxx.com -o /root/Desktop/save.log 爆破郵箱,一行對應一行 xxx.@qq.com:123
hydra -C /home/post/user2.txt -t 1  svn://ip -s 3590 爆破svn
hydra -l root -P /root/Desktop/pass.txt -M /root/Desktop/list.txt -t 2 mysql 爆破mysql
View Code

多線程下載

安裝方式一:
yum -y install epel-release
yum install axel-2.4-9.el7.x86_64.rpm rpm -ivh axel-2.4-9.el7.x86_64.rpm

安裝方式二:
wget -c http://pkgs.repoforge.org/axel/axel-2.4-1.el6.rf.x86_64.rpmrpm -ivh axel-2.4-1.el6.rf.x86_64.rpm


是用實例:
axel -an 4 https://ubuntu-mate.org/raspberry-pi/ubuntu-mate-16.04-desktop-armhf-raspberry-pi.img.xz #同時開4線程下載

基本參數:
-n x指定線程數(x 必須爲大於 0 的數字)
-o x 指定另存爲目錄(x 必須爲本地目錄)
-s x 指定下載速度(x 必須爲大於 0 的數字,單位是 bytes/s)
-q 靜默模式,無任何輸出信息
-V 軟件版本
Axel 在下載過程當中若是遇到中斷的話,在原來的目錄再次執行相同的下載命令便可恢復下載進度。
View Code

修改終端顏色

PS1是Linux終端用戶的一個環境變量,用來定義命令行提示符的參數。

在終端輸入命令:
# echo $PS1
可獲得當前PS1的定義值:
PS1='[\u@\h \W]\$ '

PS1的經常使用參數以及含義:
  \d :表明日期,格式爲weekday month date,例如:"Mon Aug 1"
  \H :完整的主機名稱
  \h :僅取主機名中的第一個名字
  \t :顯示時間爲24小時格式,如:HH:MM:SS
  \T :顯示時間爲12小時格式
  \A :顯示時間爲24小時格式:HH:MM
  \u :當前用戶的帳號名稱
  \v :BASH的版本信息
  \w :完整的工做目錄名稱
  \W :利用basename取得工做目錄名稱,只顯示最後一個目錄名
  \# :下達的第幾個命令
  \$ :提示字符,若是是root用戶,提示符爲 # ,普通用戶則爲 $

因此linux默認的命令行提示信息的格式
   PS1='[\u@\h \W]\$ '  的意思就是:[當前用戶的帳號名稱@主機名的第一個名字 工做目錄的最後一層目錄名]#


顏色設置參數
  在PS1中設置字符顏色的格式爲:\[\e[F;Bm\]........\[\e[0m\],其中「F「爲字體顏色,編號爲30-37,「B」爲背景顏色,編號爲40-47,\[\e[0m\]做爲顏色設定的結束。
  顏色對照表:
    F    B
    30  40 黑色
    31  41 紅色
    32  42 綠色
    33  43 黃色
    34  44 藍色
    35  45 紫紅色
    36  46 青藍色
    37  47 白色
  只需將對應數字套入設置格式中便可。
  好比要設置命令行的格式爲綠字黑底(\[\e[32;40m\]),顯示當前用戶的帳號名稱(\u)、主機的第一個名字(\h)、完整的當前工做目錄名稱(\w)、24小時格式時間(\t),能夠直接在命令行鍵入以下命令:
 通過屢次測試後,最終肯定了一個適合我本身的格式:
# PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\\$ "

上面的設置的做用域只有當前終端的登錄有效,關閉終端或退出登陸即刻失效。要想永久性的保存設置,須要修改.bashrc配置文件。
vim .bashrc
PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\\$ "
source .bashrc
View Code

建立指定大小的文件

truncate
truncate -s 13M onebox.test

fallocate
fallocate -l 13000000 onebox.test

dd
dd if=/dev/urandom of=onebox.test bs=13MB count=1
OR
head -c 13MB /dev/urandom > onebox.test
View Code

查看版本信息等

查看所有信息
[root@VM_168_159_centos log]# uname -a
Linux VM_168_159_centos 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
查看內核信息
[root@VM_168_159_centos log]# uname -r
3.10.0-693.el7.x86_64
查看版本號
[root@VM_168_159_centos log]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core)
View Code

開機自啓

1、添加開機自啓服務

在CentOS 7中添加開機自啓服務很是方便,只須要兩條命令(以Jenkins爲例):
systemctl enable jenkins.service #設置jenkins服務爲自啓動服務
sysstemctl start  jenkins.service #啓動jenkins服務

2、添加開機自啓腳本

在centos7中增長腳本有兩種經常使用的方法,以腳本autostart.sh爲例:
#!/bin/bash
#description:開機自啓腳本
/usr/local/tomcat/bin/startup.sh  #啓動tomcat

方法一

1、賦予腳本可執行權限(/opt/script/autostart.sh是你的腳本路徑)
chmod +x /opt/script/autostart.sh

2、打開/etc/rc.d/rc.local文件,在末尾增長以下內容
/opt/script/autostart.sh

3、在centos7中,/etc/rc.d.rc.local的權限被下降了,因此須要執行以下命令賦予其可執行權限
chmod +x /etc/rc.d/rc.local

方法二

1、將腳本移動到/etc/rc.d/init.d目錄下
mv  /opt/script/autostart.sh /etc/rc.d/init.d

2、增長腳本的可執行權限
chmod +x  /etc/rc.d/init.d/autostart.sh

3、添加腳本到開機自動啓動項目中
cd /etc/rc.d/init.d
chkconfig --add autostart.sh
chkconfig autostart.sh on

 
View Code

進入單用戶模式

1 -在啓動grub菜單,選擇編輯選項啓動
2 - 按鍵盤e鍵,來進入編輯界面
3 - 找到Linux 16的那一行,將root=/dev/mapper/centos-root ro rd改成root=/dev/mapper/centos-root  rw init=/sysroot/bin/sh rd
4 - 如今按下 Control+x ,使用單用戶模式啓動
5 - 如今,可使用下面的命令訪問系統
chroot /sysroot
6 - 重置密碼
passwd root
7 - 更新系統信息
touch /.autorelabel
8 - 退出chroot
exit
9 - 重啓你的系統
reboot
View Code

修改主機名

永久修改:hostnamectl set-hostname <newhostname>
臨時修改:hostname <new-hostname>
View Code

修改時區

將時區是修爲上海
date -R 查看時區
rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
View Code

文件編碼及修改文件編碼

一般來講,Windows中默認的文件格式是GBK(gb2312),而Linux通常都是UTF-8,因此Linux下打開windows的文件會有亂碼的狀況。另外,有時要將文件進行編碼轉換,如將簡體中文轉換爲繁體中文。
vim中查詢修改文件編碼格式
  set fileencoding查看如今文本的編碼
  set fenc=編碼轉換當前文本的編碼爲指定的編碼
  set enc=編碼以指定的編碼顯示文本,但不保存到文件中。這裏的「編碼」常見爲gbk utf-8 big5 cp936
  set ff查看當前文本的模式類型,通常爲dos,unix
  set ff=dos設置爲dos模式也能夠用一下方式轉換爲unix模式
  %s/^M//g等同於:set ff=unix
使用dos2unix
  格式:dos2unix file

  若是一次轉換多個文件,把這些文件名直接跟在dos2unix以後。(注:也能夠加上-o參數,也能夠不加,效果同樣)
    格式:dos2unix file1 file2 file3  或者  格式:dos2unix -o file1 file2 file3

  上面在轉換時,都會直接在原來的文件上修改,若是想把轉換的結果保存在別的文件,而源文件不變,則可使用-n參數。
    格式:dos2unix oldfile newfile

  若是要保持文件時間戳不變,加上-k參數。因此上面幾條命令都是能夠加上-k參數來保持文件時間戳的。
    格式:dos2unix -k file
View Code

命令補全包

由於centos7最小安裝的話,默認沒有自動補全功能,要啓用這個功能的話要安裝一個bash-completion的包,而後退出bash,從新登陸便可
yum install -y bash-completion
View Code

安裝Centos7出現dracut-initqueue timeout 等各類問題

問題:
  以前使用U盤安裝CentOS6.5能夠正常安裝,即用 UltraISO將U盤製做爲啓動盤,啓動時選擇USB啓動便可。但是安裝CentOS7時,進不了安裝界面,提示超時,最後進入到dracut#:字符界面

緣由分析:
  centos7官方說(https://wiki.centos.org/HowTos/InstallFromUSBkey),對於CentOS7,在Window上製做鏡像的話,因爲CentOS有一個特別的分區問題,因此有些Windows工具就不能正確的將U盤作成啓動盤。目
  前爲止不能夠的工具備:unetbootin 和 universal usb installer。能夠 的工具備Rufus, Fedora LiveUSB Creator,Win32 Disk Image, Rawrite32和dd。
解決方法:
  1.使用win32 disk imager將U盤製做爲啓動盤,寫入時間很慢,可是最後成功安裝
  2.>在報錯信息下面進行以下操做:
    >dracut:/# cd dev 
   >dracut:/# ls 這樣子你就會看到全部的設備信息。 
    >找到sdbx,x爲一個數字,是你u盤所在 
   >dracut:/# reboot 重啓以後 
    >在install頁面按e鍵 
    >修改vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64.check quiet爲 vmlinuz initrd=initrd.img inst.stage2=/hd:/dev/sdbx(你u盤所在)quiet 而後按Ctrl+x就行了。就出現了centOS的安裝界面了。
   可是在操做過程當中,我發現的dev裏面的sdb開頭的只有sdb,sdb1和sdb2,因而我就把它仨都試了一遍,就過都說找不到img文件。 原本我覺得個人電腦不能安裝Linux的,後來我發現他們通常都說默認是sdb4,可個人dev裏面沒有sdb4,不過個人dev有個sdc4,因而我就使用sdc4 
    >修改vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64.check quiet爲 vmlinuz initrd=initrd.img inst.stage2=/hd:/dev/sdc4 quiet 而後按Ctrl+x,就出現了centOS的安裝界面了。
View Code

在linux中搜索執行過的命令

crtl+r

 Centos7服務器自動重啓 acpi引發

查看日誌信息

sudo tail -n1000 /var/log/messages |grep -i error

sudo grep -E "error|Error|ERROR|fail|Fail|FAIL" /var/log/dmesg

分析:

因爲BIOS中開啓了中斷重映射(這是個複雜的東西,也能夠簡單講明白,我就不講了。),在ERST(芯片集中的錯誤校驗表)校驗時發生錯誤,致使高級配置電源管理模塊沒法處理IPMI驅動請求,預存數據到內存發生錯誤,引起kernel上演了一出找到空指針的戲法。

解決辦法

1.

vi /boot/grub/grub.conf
在kernel一行最後加上acpi=off noacip

kernel ... acpi=off noacip

2.升級內核版本

3.

在grub.conf的內核啓動參數中添加 intremap=off 或者 intremap=no_x2apic_optout

intremap={on,off,nosid,no_x2apic_optout}

    on(默認值)開啓中斷重映射,BIOS中默認開啓

    off 關閉中斷重映射

    nosid 重映射時不對SID(Source ID)作檢查

    no_x2apic_optout 無視BIOS的設置,強制禁用x2APIC特性,主要用於解決某些對x2APIC支持有缺陷的BIOS致使的故障

 

4.重裝系統

安裝gcc出錯-Setup script exited with error: command 'gcc' failed with exit status

因爲沒有正確安裝Python開發環境致使。
Python2
  yum install python-dev
Python3
  yum  install python3-dev
可能須要libevent庫
  yum  install libevent-dev
最後更新下開發環境
  yum groupinstall 'development tools'

vim案例

在使用虛擬機vim的時候,忽然鏈接不上虛擬機,致使剛剛在編寫的文件還未保存
vim會在當前文件下生成一個緩存文件
例如,第一次產生的交換文件名爲'.spring.md.swp';再次意外退出後,將會產生名爲'.spring.md.swo'的交換文件,而第三次產生的交換文件則爲'.spring.md.swn';以此類推
使用vim -r spring.md來進行文件的恢復,或者其它選項進行編輯或關閉或查看

linux內核i/o調度方法

https://jackyrong.iteye.com/blog/898938
https://blog.51cto.com/scoke/490546
https://blog.csdn.net/qq_41998290/article/details/88416427

 

 

企業故障案例

企業故障案例一:web磁盤服務器佔滿解析及解決 

參考一  參考二  參考三  參考四   strace

  可能緣由是當一個定時任務正在執行的時候,cron中執行的程序有輸出內容,輸出內容會以mail的形式發送給對應的cron job用戶,sendmail郵件服務默認是關閉的,因此定時任務發送的郵件就會臨時堆在/var/spool/clientmqueue/,形成文件數目特別多,在ext3文件系統中,每一個文件佔用一個inode,形成磁盤空間不斷縮小

若是文件太多,佔用空間太大,文件太多,就執行下面的命令:(或者直接刪除目錄,而後按照原來的權限和屬組在建立)

# cd /var/spool/clientmqueue
# ls | xargs rm -f 
# 也能夠每週刪除一下clientmqueue目錄下的臨時文件,放入到定時任務中

企業故障案例二:

 

密碼管理工具

https://keeweb.info/?utm_source=www.appinn.com
中文插件:https://plugins.keeweb.info/translations/zh-CN/

Centos7命令總結

watch -n 2 /tmp/log.log   默認每隔兩秒鐘查看log.log是否有變化

tail -f /tmp/log.txt             查看文件變化,一直等待

for i in {3..254} ; do ping -c 1 192.168.0.$i &>/dev/null && echo 192.168.0.$i is alive ;done  查看內網主機是否存活

ll |wc -l 查看目錄下文件的數量

 hostnamectl set-hostname node1 修改hostname

time dd=/dev/ of=/mnt/123.txt bs=9k count=2000 計算一個任務的執行時間

 

 

 

啦啦啦、

相關文章
相關標籤/搜索