99热99这里只有精品6国产,亚洲中文字幕在线天天更新,在线观看亚洲精品国产福利片 ,久久久久综合网

歡迎加入QQ討論群258996829
麥子學(xué)院 頭像
蘋(píng)果6袋
6
麥子學(xué)院

從事運(yùn)維工作,你應(yīng)該知道這些技巧

發(fā)布時(shí)間:2017-03-03 21:12  回復(fù):0  查看:2030   最后回復(fù):2017-03-03 21:12  
本文和大家分享的主要是運(yùn)維工作中常用的一些技巧,一起來(lái)看看吧,希望對(duì)大家 學(xué)習(xí)運(yùn)維有所幫助。
  很多人都說(shuō)運(yùn)維工作是苦逼的,不可否認(rèn),有時(shí)候我也這樣覺(jué)的,但回頭想想,又有份工作不辛苦呢,看看那些在敘利亞前線(xiàn)的記者,在馬路上的清潔工,在飯店不停顛勺的廚師,在理發(fā)店里兩只胳膊永遠(yuǎn)呆在空中的理發(fā)師,不停授課講話(huà)的老師們。。。。。
  如果你現(xiàn)在做的這份工作是和運(yùn)維、DBA 相關(guān),不管現(xiàn)狀如何,是不是應(yīng)該往好的方向發(fā)展呢,在苦逼,乏味,忙碌的工作中尋找樂(lè)趣,才能感受到這其中的不一樣。有句話(huà)說(shuō)的好,  當(dāng)你做真正自己喜歡的事情時(shí),你才會(huì)很少感覺(jué)到疲倦。
  扯多了。下面是我整理的日常運(yùn)維工作中常用的  技巧  ,  說(shuō)是技巧  ,其實(shí)無(wú)非是幫助你提高效率,簡(jiǎn)化操作。只整理了  一部分,分享給大家。
  Linux
  1. screen
  screen 是一個(gè)可以統(tǒng)一管理多個(gè)會(huì)話(huà),并可在會(huì)話(huà)之間切換,共享會(huì)話(huà)的工作,更是  DBA在執(zhí)行DDL,大事務(wù)性工作  的利器。
  示例:
  ## 新建一個(gè) screen
  [lufei@dodba ~]$ screen -R lufei## 查看所有 screen
  [lufei@dodba ~]$ screen -lsThere is a screen on:14919.lufei(Attached)1 Socket  in /var/run/screen/S-lufei.## 將指定的 screen 離線(xiàn)
  [lufei@dodba ~]$ screen -D 14919
  [14919.lufei power detached.]## 恢復(fù)一個(gè) screen
  [lufei@dodba ~]$ screen -R 14919
  2.Ctrl-Z/fg/bg/jobs
  如果你正在前臺(tái)正運(yùn)行一個(gè)執(zhí)行時(shí)間很長(zhǎng)的任務(wù),但又需要做其他的事情,這個(gè)時(shí)候你可以使用Ctrl-Z ,將前臺(tái)任務(wù)掛到后臺(tái)。
  常用:
  ·CTRL+Z   掛起進(jìn)程并放入后臺(tái)。
  ·jobs        顯示當(dāng)前暫停的進(jìn)程。
  ·bg %N    使第 N 個(gè)任務(wù)在后臺(tái)運(yùn)行,默認(rèn)表示對(duì)最后一個(gè)進(jìn)程操作。
  ·fg   %N   使第 N 個(gè)任務(wù)在前臺(tái)運(yùn)行,默認(rèn)表示對(duì)最后一個(gè)進(jìn)程操作。
  示例:
  ## 使用 Ctrl-Z  cp 任務(wù)掛到后臺(tái)
  [lufei@dodba ~]$ cp dump.gz dump.gz2016
  ^Z[1]+  Stopped  cp -i dump.gz dump.gz2016
  ##jobs  查看后臺(tái)任務(wù)
  [lufei@dodba ~]$ jobs
  [1]+  Stopped  cp -i dump.gz dump.gz2016
  ## fg  將最后一個(gè)后臺(tái)任務(wù)拉到前臺(tái)
  [lufei@dodba ~]$ fg
  cp -i dump.gz dump.gz2016
  ## 可以再次使用 Ctrl-Z  cp 任務(wù)掛到后臺(tái)
  ^Z[1]+  Stopped cp -i dump.gz dump.gz2016
  ## 使用 bg ,將最后一個(gè)任務(wù)放到后臺(tái)執(zhí)行
  [lufei@dodba ~]$ bg
  [1]+ cp -i dump.gz dump.gz2016 &
  ## 使用 jobs  可以看到 cp 在后臺(tái)執(zhí)行
  [lufei@dodba ~]$ jobs
  [1]+  Running  cp -i dump.gz dump.gz2016 &
  3. shell set  命令
  set 命令作用主要是顯示系統(tǒng)中已經(jīng)存在的 shell 變量,以及設(shè)置 shell 變量的新變量值,  [+ -] 分別為打開(kāi)和關(guān)閉這個(gè)參數(shù), set  有很多參數(shù),而 set -x 是我最常用的。  set -x  ,顯示shell 腳本運(yùn)行的冗余輸出,每一條命令以及加載命令行中的任何參數(shù)都會(huì)顯示出來(lái),  調(diào)試shell腳步非常方便 
  [lufei@dodba ]$  cat  set. sh  #!/bin/bash
   set -x
  echo -n "your name?"
   read name
   if [ $name = "lufei" ] then
   echo "hello" else
   echo "haha"
   fi
  [lufei@dodba ]$ bash  set. sh
  echo -n 'your name?'your name?
  read name
  lufei
  + '[' lufei = lufei ']'+  echo hello
  hello
  另一中方式sh -x
  [lufei@dodba]$  cat  set. sh  #!/bin/bash
  echo -n "your name?"
   read name
   if [ $name = "lufei" ]
   then
   echo "hello"
   else
   echo "haha"
   fi
  
  [lufei@dodba]$  sh -x set.sh
  echo -n 'your name?'your name?
  read name
  lufei
  + '[' lufei = lufei ']'
  echo hello
  hello
  4. shell  日志記錄
  運(yùn)維工作的同學(xué)編寫(xiě)shell 腳步應(yīng)該是硬技能,將一些復(fù)雜的操作編寫(xiě)成 shell 腳步,可以提高不少效率, shell 腳步記錄日志是必不可少的,日志可以用來(lái)排錯(cuò),追溯等用途,下面提供一個(gè)記錄 shell 腳步日志的方法。
  LOGFILE=${BASEDIR}/logs/${DTTIME}.log
  exec 3>&1 4>&2 1>>${LOGFILE} 2>&1
  5. shell  并發(fā)
  上面剛說(shuō)到運(yùn)維同學(xué)會(huì)使用shell 是硬性要求,那么如何在 shell 中使用并發(fā)呢,見(jiàn)下面代碼。
  #!/bin/bash
  cat ip.txt| while read info; do
  zn=`echo ${info}|awk '{print $1}'`;
  IP=`echo ${info}|awk '{print $2}'`;
  joblist=($(jobs -p)); -- 還可以根據(jù) ps -ef|grep  當(dāng)前腳步名稱(chēng) |wc -l while(( ${#joblist} >= 10 ))-- 控制并發(fā)數(shù),可以做為參數(shù) do
  sleep 40joblist=($(jobs -p)); done
  scp ${IP}:/home/databak/*${zn}*2016050603* /home/lufei/dump/ & done;
  6. crt 顯示主機(jī)名
  有時(shí)候在crt 中打開(kāi)多個(gè)窗口,太多了后,自己都分不清哪個(gè)是哪個(gè),使用下面的方法,可以在打開(kāi) crt 時(shí)顯示主機(jī)名
  ##  /etc/profile  中增加以下,然后 crt 選擇 Xtermecho -ne "\e]2;$(hostname)\a"
  還有一些常用命令如下:
  ·Ctrl+a  光標(biāo)移動(dòng)到命令行開(kāi)始
  ·Ctrl+e  光標(biāo)移動(dòng)到到命令行末尾
  ·Ctrl+u  清除剪切光標(biāo)之前的內(nèi)容
  ·Ctrl+w  清除光標(biāo)前的一個(gè)單詞
  ·Ctrl+r  查找歷史命令
  ·Ctrl+l  清屏
  MySQL
  1.MySQL shell 交互
  有些時(shí)候我們需要從MySQL 中讀出數(shù)據(jù),然后傳給 shell ,去做一些邏輯判斷,下面是一個(gè)實(shí)例,目前我們使用 beego 框架開(kāi)發(fā)了一套 SQL 上線(xiàn)平臺(tái),這個(gè) web 平臺(tái)主要控制審批流程,然后將審批過(guò)的信息存到 MySQL 中,后臺(tái)我們使用以下腳本遠(yuǎn)程執(zhí)行。
  #!/bin/bash while read id dbname dbip sqlfile;  do echo $id $dbname $dbip $sqlfile##mysql -h$dbip -utest -p'test'
  -D $dbname --default-character-set=utf8 -vvv < ${SQLDIR}/$sqlfile done < <(/usr/bin/mysql -utest -p"test"
  -s --skip-column-names  -e "use enndb;select id,n,d,e from aw where s='3'")
  還有一個(gè)經(jīng)典的交互案例就是備份,我們都知道mysqldump 備份是串行的,多個(gè) database ,一個(gè)一個(gè)備份,同 database 中一個(gè)一個(gè) table 去備份,如何可以并行使用 mysqldump 備份呢,寫(xiě)多個(gè) mysqldump ,太 low 了吧。下面代碼可以做到。
   for db  in $(mysql -e "show databases" -s --skip-column-names); do echo $db;
  mysqldump ........ & done
  2.MySQL  解壓恢復(fù)
  使用mysqldump 備份的時(shí)候,一般我們?yōu)榱斯?jié)省磁盤(pán)空間會(huì)使用以下方法進(jìn)行壓縮,
  mysqldump -hlocalhost --default-character-set=utf8
  --master-data=2 --single-transaction
  -B a   | gzip > 'a'`date +%Y%m%d%H%M`.sql.gz
  在進(jìn)行恢復(fù)/ 搭建從庫(kù)時(shí)需要先解壓,再去導(dǎo)入,需要兩條命令,簡(jiǎn)潔的方法如下 :
   gunzip < a201612071131.sql.gz |mysql
  3.MySQL loose_
  當(dāng)你在不同的MySQL 版本中,或是不同的 MySQL 分支中切換 my.conf 配置文件時(shí)(少數(shù)),可能有些參數(shù)會(huì)不兼容,使用  loose_  參數(shù),如果沒(méi)有這個(gè)參數(shù),將會(huì)忽略。
  [ root@dodba ~]# grep dodba /etc/my.cnf
  dodba=1
  [ root@dodba ~]# /etc/init.d/mysql startStarting MySQL ( Percona Server)......
  ERROR! The server quit without updating PID file ( /home/mysql/dodba.com.pid).
  [ root@dodba ~]# tail -f error.log2016-12-19T10:08:31.875314Z 0 [ ERROR] unknown variable 'dodba=1'2016-12-19T10:08:31.875371Z 0 [ ERROR] Aborting
  ## 增加 loose_ 前綴
  [ root@dodba ~]# grep dodba /etc/my.cnf
  loose_dodba=1
  [ root@dodba ~]# /etc/init.d/mysql start
  Starting MySQL ( Percona Server).. SUCCESS!
  4.MySQL  幫助
  眾多的MySQL 命令,除了常用的,應(yīng)該有很多都記不住,其實(shí)不用查文檔,直接使用  ?+命令 就會(huì)有很詳細(xì)的幫助。
  mysql> ? purge
  Name: 'PURGE BINARY LOGS'Description:Syntax:
  PURGE { BINARY | MASTER } LOGS
  { TO 'log_name' | BEFORE datetime_expr }
  Examples:
  PURGE BINARY LOGS TO 'mysql-bin.010';
  PURGE BINARY LOGS BEFORE '2008-04-02 22:46:26';
  5.MySQL --initialize-insecure
  相信大家都知道MySQL5.7 版本的安裝最重要的一個(gè)變化就是不在使用 mysql_install_db ,而是使用 mysqld --initialize ,其實(shí)還有一個(gè)參數(shù)是  --initialize-insecure  。
  兩個(gè)參數(shù)的區(qū)別就是前者生成一個(gè)臨時(shí)密碼在日志中,對(duì)于自動(dòng)化安裝腳步來(lái)講還得處理,而直接使用后者,會(huì)生成一個(gè)空密碼的賬號(hào),安裝腳步就不需要再處理,但是登陸后為安全起見(jiàn)還是希望你能修改密碼。
  6.MySQL -vv
  在mysql 中使用  -vv  參數(shù),可以返回更詳細(xì)的信息,有詳細(xì)的信息就會(huì)更容易排錯(cuò)。
   ##什么都不返回
   [root@dodba ~]# mysql  -e "use tdb;update t set name=444;"   
   ##-v 顯示語(yǔ)句本身
   [root@dodba ~]# mysql  -v -e "use tdb;update t set name=444;"
   --------------update t set name=444--------------
  
   ##-vv 顯示執(zhí)行時(shí)間,結(jié)果
   [root@dodba ~]#  mysql  -vv -e "use tdb;update t set name=444;"
   --------------update t set name=444--------------
  Query OK, 0  rows affected (0.02 sec)
  Rows  matched: 2   Changed: 0   Warnings: 0
  Bye
  7.MySQL  類(lèi)型轉(zhuǎn)換
  有些時(shí)候,有同學(xué)在SQL where 條件中會(huì)直接寫(xiě)  key=1278  類(lèi)似(值不加引號(hào))的謂詞條件,但如果這個(gè) key varchar 類(lèi)型,就會(huì)發(fā)生隱式類(lèi)型轉(zhuǎn)換,導(dǎo)致全表掃描。其實(shí)你只需要記住一條,謂詞條件中的值,都加 引號(hào) 就可以了。 下面是個(gè)實(shí)例:
  mysql> desc t;
  +-------+-------------+------+-----+---------+-------+
  | Field | Type        | Null | Key | Default | Extra |
  +-------+-------------+------+-----+---------+-------+
  | id    |  int(11)     | YES  |     | NULL    |       |
  | name  | varchar(20) | YES  |     | NULL    |       |
  +-------+-------------+------+-----+---------+-------+2 rows  in  set (0.00 sec)
  mysql> alter table t  add index  ind_id(id);
  Query OK, 0 rows  affected (0.19 sec)
  Records: 0  Duplicates: 0  Warnings: 0
  mysql> alter table t  add index  ind_name(name);
  Query OK, 0 rows  affected (0.09 sec)
  Records: 0  Duplicates: 0  Warnings: 0
  ## 隱式轉(zhuǎn)換,全表掃描 select *  from t  where name=222;
  ## 不會(huì)發(fā)生隱式類(lèi)型轉(zhuǎn)換,索引掃描 select *  from t  where name='222'; select *  from t  where id=1; select *  from t  where id='1';


來(lái)源: 公眾賬號(hào)
您還未登錄,請(qǐng)先登錄

熱門(mén)帖子

最新帖子

?