<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      linux trap

      轉載:Linux信號和trap命令的使用 - 劉合棟 - 博客園 (cnblogs.com)

      Fork me on GitHub

      Linux信號和trap命令的使用

       

       



      信號介紹

      運行Shell腳本時,如果按下快捷鍵Ctrl+cCtrl+x(x為其他字符),程序就會終止運行,

      在有些情況下,我們并不希望Shell腳本在運行時被信號中斷,此時就可以使用屏蔽信號手段,讓程序忽略用戶輸入的信號指令,從而繼續運行Shell腳本程序,

      簡單的說,Linux的信號是由一個整數構成的異步消息,它可以由某個進程發給其他的進程,也可以在用戶按下特定鍵發生某種異常事件時,由系統發給某個進程。






      信號列表

      在Linux下和洗好相關的常見命令為killtrap命令,執行kill -ltrap -l命令,可以列出系統支持的各種洗好,多大64個。

      [root@www ~]$ 
      [root@www ~]$ trap -l
       1) SIGHUP	    2) SIGINT	    3) SIGQUIT	    4) SIGILL	   5) SIGTRAP
       6) SIGABRT	    7) SIGBUS	    8) SIGFPE	    9) SIGKILL	   10) SIGUSR1
      11) SIGSEGV	    12) SIGUSR2	    13) SIGPIPE	    14) SIGALRM	    15) SIGTERM
      1) SIGSTKFLT	17) SIGCHLD	    18) SIGCONT	    19) SIGSTOP	    20) SIGTSTP
      21) SIGTTIN	    22) SIGTTOU	    23) SIGURG	    24) SIGXCPU	    25) SIGXFSZ
      26) SIGVTALRM	27) SIGPROF	    28) SIGWINCH	29) SIGIO	    30) SIGPWR
      31) SIGSYS	    34) SIGRTMIN	35) SIGRTMIN+1	36) SIGRTMIN+2	37) SIGRTMIN+3
      38) SIGRTMIN+4	39) SIGRTMIN+5	40) SIGRTMIN+6	41) SIGRTMIN+7	42) SIGRTMIN+8
      43) SIGRTMIN+9	44) SIGRTMIN+10	45) SIGRTMIN+11	46) SIGRTMIN+12	47) SIGRTMIN+13
      48) SIGRTMIN+14	49) SIGRTMIN+15	50) SIGRTMAX-14	51) SIGRTMAX-13	52) SIGRTMAX-12
      53) SIGRTMAX-11	54) SIGRTMAX-10	55) SIGRTMAX-9	56) SIGRTMAX-8	57) SIGRTMAX-7
      58) SIGRTMAX-6	59) SIGRTMAX-5	60) SIGRTMAX-4	61) SIGRTMAX-3	62) SIGRTMAX-2
      63) SIGRTMAX-1	64) SIGRTMAX	
      
      [root@www ~]$
      




      下列表示Linux系統中重要的信號

      信號說明
      HUP(1) 掛起,通常因終端掉線或用戶退出而引發
      INT(2) 中斷,通常因按下 Ctrl+c 組合件而引發
      QUIT(3) 退出。通常因按下 Ctrl+\ 組合鍵而引發
      ABRT(6) 中止,通常因某些嚴重的執行錯誤而引發
      ALRM(14) 報警,通常用來處理超時
      TERM(15) 終止,通常在系統關機時發送
      TSTP(20) 停止進程的運行,但該信號可以被處理和忽略,通常因按下 Ctrl+z 組合鍵而引發






      控制信號

      trap 命令用于指定在接受到信號后將要采取的行動,信號的相關說明前面已經提到過,trap 命令的一種常見用途是在腳本程序被終端時完成清理工作,或者屏蔽用戶非法使用的某些信號,在使用信號名時需要省略 SIG 前綴,可以在命令提示符下輸入命令trap -l來查看信號的編號及其關聯的名稱。

      trap 命令的參數分為兩部分,前一部分是接收到指定信號時要采取的行動,后一部分是要處理的信號名。

      trap命令的使用語法如下:

      trap command signal
      

      signal是指接收到的信號,command是指接收到該信號應采取的行動,也就是:

      trap '命令;命令' 信號編號
      

      或者

      trap '命令;命令' 信號名
      



      Ctrl+c顯示指定內容

      [root@www ~]$ trap 'echo "<Ctrl+c> Failure."' 2
      [root@www ~]$ ^C<Ctrl+c> Failure.
      
      [root@www ~]$ ^C<Ctrl+c> Failure.
      
      [root@www ~]$ 
      

      可以使用stty -a列出中斷信號與鍵盤的對應信息,如下:

      [root@www ~]$ stty -a
      speed 38400 baud; rows 31; columns 95; line = 0;
      intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>;
      swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;
      flush = ^O; min = 1; time = 0;
      -parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -cdtrdsr
      -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany
      -imaxbel -iutf8
      opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
      isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
      [root@www ~]# 
      



      使Ctrl+c無任何操作

      [root@www ~]$ trap "" 2     # 之后使用Ctrl+c快捷鍵將無任何操作
      



      處理多個信號

      [root@www ~]$ trap '' 1 2 3 20 15
      



      處理所有信號

      [root@www ~]$ trap ':' `echo {1..64}`
      



      恢復信號

      trap ':' 1 2 3 20 15        # 該命令即可恢復指定信號
      






      實現跳板機(實例)

      四臺機器:

      192.168.100.100 - 客戶機

      192.168.100.101 - 跳板機

      192.168.100.102 - Web服務器

      192.168.100.151 - Sql服務器


      (1) 創建Jump用戶(跳板機)

      [root@www ~]$ useradd Jump ; echo 123123 | passwd Jump --stdin
      

      (2) Jump發布公鑰(跳板機)

      [Jump@www ~]$ ssh-keygen        # 回車即可
      [Jump@www ~]$ ssh-copy-id 192.168.100.102   # yes后輸入密碼
      [Jump@www ~]$ ssh-copy-id 192.168.100.151   # yes后輸入密碼
      

      (3) 編寫腳本(跳板機)

      #! /bin/bash
      #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      #   Copyright (C) 2019 All rights reserved.
      #
      #   FileName      :jump.sh
      #   Author        :Oliven
      #   Email         :liuhedong135@163.com
      #   Date          :2019-02-12
      #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      
      
      trap 'clear;echo "Not allowed Operation !!!"' 1 2 3 15 20       # "修改信號控制"
      
      function Echo_Choice(){         # 連接后打印的選擇條目
      	echo "
      	>[ Welcome to use the jump mechine ]<
      
      	(1)  Conneciton to the Web Server.
      	(2)  Connection to the Sql Server.
      	(3)  Conneciton to the Jump Server.
      	(4)  Exit.
      "
      }
      
      function Wait_Info(){           # 連接時打印的顯示信息
      	clear
      	echo -n "Please wait a moment, Connecting ."
      	sleep 1
      	echo -n "."
      	sleep 1
      	echo -n "."
      	sleep 1
      	clear
      	echo "The Connection is Successfully."
      	sleep 1
      }
      
      while true                          # 開始循環
      do                          
      	clear                           # 首先清個屏
      	Echo_Choice                     # 然后選擇條目
          read -p ">> " choice            # 獲取用戶的操作
          case "$choice" in               # case語句進行匹配
          1)
          	Wait_Info                   # 連接時打印的顯示信息
          	ssh root@192.168.100.102    # 連接到Web服務器
          ;;
          2)
          	Wait_Info                   # 連接時打印的顯示信息
          	ssh root@192.168.100.151    # 連接到Sql服務器
          ;;
          3)
      	    Wait_Info                   # 連接時打印的顯示信息
          	read -p "Enter The Admin Key: " key     # 等待用戶輸入跳板機的key
      		if [ "$key" = "199907" ]                # 如果key等于199907
      		then                                    #         ↓
      			clear                               # 首先清個屏,然后直接連接成功
      			break                               # 退出該腳本,進入Jump機
      		else
      		    echo "The key is invalid."          # 如果key不對,打印錯誤信息
      		    sleep 1                             # 先等待一秒
      		    continue                            # 然后回到開頭的while,重新選擇條目
      		fi
          ;;
          4)                  
          	exit 0                      # 退出該跳板機
          ;;
          *)
          	echo "Invalid options."     # 如果選擇不為1、2、3、4,即打印的錯誤信息
      	sleep 0.5                       # 然后等待0.5s后,回到開頭的while繼續循環
          esac
      done
      

      (4) 加入配置文件

      [root@www ~]$ echo "source /home/Jump/jump.sh" >> /home/Jump/.bash_profile
      

      (5) 測試(客戶機)

      [root@www ~]$ ssh Jump@192.168.100.101
      Jump@192.168.100.101's password: 
      # 輸入完密碼123123之后,出現以下內容即可成功
      
      	>[ Welcome to use the jump mechine ]<
      
      	(1)  Connection to the Web Server.
      	(2)  Connection to the Sql Server.
      	(3)  Connection to the Jump Server.
      	(4)  Exit.
      
      >> 
      posted @ 2024-06-25 19:17  burlingame  閱讀(117)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 大化| 国产精品中文字幕在线| 精品少妇后入一区二区三区| аⅴ天堂中文在线网| 色综合激情丁香七月色综合| 国产色无码专区在线观看| 色爱综合激情五月激情| 国产精品午夜福利导航导| 中文字幕无码免费久久9一区9| 免费人成网站免费看视频| 白嫩人妻精品一二三四区| 日韩伦理片| 樱桃视频影院在线播放| 久热久热久热久热久热久热| 在线观看无码av免费不卡网站| 97久久久亚洲综合久久| 国产一区二区三区粉嫩av| 国精品91人妻无码一区二区三区| 国产在线无码不卡播放| 国产一区二区三区禁18| 少妇性l交大片| 亚洲中文字幕无码日韩精品| 无码免费大香伊蕉在人线国产| 张掖市| 国产99久久亚洲综合精品西瓜tv| 久久亚洲中文字幕伊人久久大 | 色一情一乱一区二区三区码| 人妻少妇偷人无码视频| 邹平县| 国语精品国内自产视频| 久久久成人毛片无码| 黑森林福利视频导航| 日本在线 | 中文| 国产成人精品久久综合| 国产精品乱码久久久久久小说| 成人激情视频一区二区三区| 男人的天堂av一二三区| 国产精品永久久久久久久久久| 亚洲av第三区国产精品| 亚洲产在线精品亚洲第一站一| 久久国产自偷自偷免费一区|