日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

LINUX脚本报错捕捉,Linux01-BASH脚本编程之信号捕捉及任务计划53

發布時間:2024/1/23 linux 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LINUX脚本报错捕捉,Linux01-BASH脚本编程之信号捕捉及任务计划53 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、腳本編程知識點

1、獲取變量中字符的長度:${#VARNAME}

2、變量賦值:

a)${parameter:-word}:如果parameter為空或未定義,則變量展開為“word”;否則,展開為parameter的值;

如:A=3

echo ${A:-30}

unset A

echo ${A:-30}

b)${parameter:+word}:如果parameter為空或未定義,不做任何操作;否則,則展開為“word”值;

如:echo ${A:+30}

A=1

echo ${A:+30}

c)${parameter:=word}:如果parameter為空或未定義,則變量展開為“word”,并將展開后的值賦值給parameter;

如:unset A

echo {A:=30}

d)${parameter:offset}:offest表示跳過幾個;

e)${parameter:offset:length}:截取子串,從offset處的后一個字符開始,取lenth長的子串;

如:A=‘Hello world’

echo {A:2:3}

3、腳本配置文件

/etc/rc.d/init.d/服務腳本,服務腳本支持配置文件:/etc/sysconfig/服務腳本同名的配置文件

4、變量作用域,局部變量:local VAR_NAME=

如:編輯一個腳本,注意其中函數定義加local和不加local的區別

#!/bin/bash

#

a=1

test() {

local a=$[3+4]

}

test

for I in `seq $a 10`; do

echo $I

done

5、命令mktemp:創建臨時文件或目錄,避免與其他文件名重復

mktemp /tmp/file.XX(tmp目錄默認30天清理一次)

-d: 創建為目錄

二、信號捕捉

1、信號:

kill -SIGNAL PID

1: HUP

2: INT

9: KILL

15: TERM

2、腳本中,能實現信號捕捉,但9和15無法捕捉

Ctrl+c: SIGINT

3、信號捕捉命令:trap

trap 'COMMAND' 信號列表

如:編輯一個腳本,捕捉Ctrl+c信號;

#!/bin/bash

#

trap 'echo "You go ..."' INT

while :;do

date

sleep 2

done

4、一行執行多個語句,語句間用分號分隔;

腳本實例:

創建腳本ping.sh,捕捉Ctrl+c信號。并清理腳本運行中產生的臨時文件。

#!/bin/bash

#

NETWORK=192.8.8.

FILE=`mktemp /tmp/file.XX`

clearup() {

echo "quit..."

rm -rf $FILE

exit 1

}

trap 'clearup' INT

for I in `seq 10 200` ;do

if ping -c 1 -w 1 $NETWORK$I &> /dev/null;then

echo "$NETWORK$I is up." | tee >> $FILE

else

echo "$NETWORK$I is down."

fi

done

三、任務計劃

1、任務計劃方式:

a)在未來的某個時間點執行一次某任務;

at

batch

b)周期性地執行某任務;

cron

2、at相關

a)使用格式:

at 時間

at> COMMAND

at> Ctrl+d

b)指定時間格式:

絕對時間:HH:MM, DD.MM.YY ?MM/DD/YY

相對時間:now+#

單位:minutes, hours, days, weeks

模糊時間:noon, midnight, teatime

c)選項:

at -l = atq :顯示作業

at -d AT_JOB_ID = atrm AT_JOB_ID :刪除某個作業

d)/etc/at.deny和/etc/at.allow文件

控制使用at命令的用戶

e)命令的執行結果:將以郵件的形式發送給安排任務的用戶;

3、cron相關:

cron:自身是一個不間斷運行的服務,運行在線主機上。

anacron:cron的補充,能夠實現讓cron因為各種原因在過去的時間該執行而未執行的任務,在恢復正常執行一次;

a)cron:

a1)系統cron任務:定義在/etc/crontab中

格式:分鐘 小時 天 月 周 用戶 任務

a2)用戶cron任務:定義在/var/spool/cron/USERNAME中

格式:分鐘 小時 天 月 周 任務

b)時間的有效取值:

b1)分鐘:0-59

b2)小時:0-23

b3)天:1-31

b4)月:1-12

b5)周:0-7,0和7都表示周日

c)時間通配表示:

c1)*:對應的所有有效取值:

如:每小時的第三分鐘:3 * * * *

每周每小時的第三分鐘:3 * * * 7

每天的12點13分:13 12 * * *

每月6號12點13分:13 12 6 * *

每年的7月6號12點13分:13 12 6 7 *

c2),:離散時間點取值:

如:每小時的10分和40分:10,40 * * * *

每周二周五的每小時的10分40分:10,40 * * * 2,5

每周二周五的2點的10分40分:10,40 02 * * 2,5

c3)-:連續時間點:

如:每周一到周五的2點10分:10 02 * * 1-5

c4)/#:對應取值范圍內每多久一次,

如:每3分鐘一次:*/3 * * * *

每2小時:01 */2 * * *

每隔1小時:* */2 * * *

每隔一天:10 04 */2 * *

d)執行結果將以郵件形式發送給管理員;

如:只把錯誤的執行結果發送給管理員:

*/3 * * * * /bin/cat /etc/fstab > /dev/null

e)cron的環境變量:cron執行的所有命令都去PATH環境變量指定的路徑下去找,在腳本中添加:

#!/bin/bash

export PATH=/bin:/sbin:/usr/bin:/usr/sbin

f)用戶任務管理命令:crontab

-l:列出當前用戶的所有cron任務

-e:編輯cron任務

-r:移除所有cron任務

-u USERNAME:管理其他用戶的cron任務

g)cron服務

service crond status

chkconfig --list crond

4、anacron相關

a)/etc/anacrontab文件字段(最小時間單位是每天)

第一段:過去幾天未執行

第二段:開機后的第多少分鐘開始運行

第三段:表示注釋信息

第四段:表示執行的任務

b)anacron服務默認是關閉的:

service anacron status

cron任務練習:

配置本機每隔兩天在凌晨3點20分備份一次/etc目錄,備份文件存放至/backup/etc目錄。文件名形如:etc-2012-06-20.tar.bz2

20 03 */2 * * root /bin/tar -jcf /backup/etc/etc-`date +%F`.tar.bz2 /etc/*

總結

以上是生活随笔為你收集整理的LINUX脚本报错捕捉,Linux01-BASH脚本编程之信号捕捉及任务计划53的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。