AIX脚本简介
超级经典的-AIX巡检脚本(改名自动巡检).sh

###################################################### Performance Maintenance Script V2015.10.1# for IBM Pseries & AIX# Erikxue 6166014@####################################################PM_HOSTNAME=`hostname`NAME=$PM_HOSTNAME`date +%m%d`MODEL=`lsattr -El sys0 |grep modelname |awk '{print $2}'`SYSTEMID=`lsattr -El sys0 |grep systemid |awk '{print $2}'`#_________ the parameters can be changed ___________#TEM_FILE=tem_0x5P68FILENAME=pm_result_$PM_HOSTNAME.htmlDIRECTORY=/tmp/xj#__________________________________________________### there are three couters: i; j########### 1. to confirm the directory########cd $DIRECTORYif [ "$?" != "0" ]thenmkdir $DIRECTORYcd $DIRECTORYfi########## 2. to confirm the ".html" file ########ls $FILENAMEif [ "$?" == "0" ]thenrm $FILENAMEfitouch $FILENAME########## 3. to produce the ".html" file #######echo "<html>" >> $FILENAMEecho "<head>" >> $FILENAMEecho "<meta http-equiv='Content-Type' content='text/html; charset=gb2312'>" >> $FILENAME echo "<title>PM_result</title>" >> $FILENAMEecho " <style><!--UNKNOWN { FONT-SIZE: 9pt; FONT-FAMILY: '宋体'; TEXT-DECORATION: none}--></style>" >> $FILENAMEecho "</head>" >> $FILENAMEecho "<body>" >> $FILENAMEecho "<table width='800' border='0' cellspacing='1' cellpadding='6' bgcolor='#CC9999' align='center'>" >> $FILENAMEecho "<tr>" >> $FILENAMEecho "<td align="center">" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho"*************************************************************************" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'><font face="Arial"><i><b>" >> $FILENAMEecho " 中国电信集团系统集成有限公司云灾备事业部--薛忠权--AIX巡检报告</b></i></font>" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'><font face="Arial"><i><b>" >> $FILENAMEecho " </b></i></font>" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'><font face="Arial"><i><b>" >> $FILENAMEecho " HostName:" >> $FILENAMEecho $PM_HOSTNAME >> $FILENAMEecho "</b></i></font>" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'><font face="Arial"><i><b>" >> $FILENAMEecho " Modeltyp:" $MODEL >> $FILENAMEecho "</b></i></font>" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'><font face="Arial"><i><b>" >> $FILENAMEecho " S/N :" $SYSTEMID >> $FILENAMEecho "</b></i></font>" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'><font face="Arial"><i><b>" >> $FILENAMEecho "* Date :", `date +%Y/%m/%d"` >>$FILENAMEecho "</b></i></font>" >> $FILENAMEecho "</b><p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'><font face="Arial">" >> $FILENAMEecho " 薛忠权(6166014@)" >> $FILENAMEecho "</font>" >> $FILENAMEecho"*************************************************************************" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "</td>" >> $FILENAME############################# 3.1 errpt ##########################################################echo "<tr>" >> $FILENAMEecho "<td bgcolor=#FFFFFF>" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'> <b>" >> $FILENAMEecho " 1.errpt </b>" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "____________________________________________" >> $FILENAME########### to put out the result ########> $TEM_FILEerrpt |nl > $TEM_FILEfor i in `tail -1 $TEM_FILE`dobreakdone(( i=$i+1 ))> $TEM_FILEerrpt > $TEM_FILEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "<table border='0' width='100%' cellpadding='0' cellspacing='0' bordercolordark='#FFFFFF' align='center' >" >> $FILENAMEwhile [ "$?" == "0" ];do(( i=$i-1))echo "<tr>" >> $FILENAMEj=1for k in `tail -$i $TEM_FILE |line`docase $j in1)echo "<td width='70'>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAME;;2)echo "<td width='100'>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAME;;3)echo "<td width='17'>" >> $FILENAMEecho "</td>" >>$FILENAME;;4)echo "<td width='17'>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAME;;5)echo "<td width='100'>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAMEecho "<td >" >> $FILENAME;;*)echo $k >> $FILENAME;;esac((j=$j+1))doneecho "</td>" >>$FILENAMEecho "</tr>" >> $FILENAMEtail -$i $TEM_FILE |linedoneecho "</table>" >> $FILENAME################ end ########################echo "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "____________________________________________" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAME############################# 3.2 mail #############################################################echo "<tr>" >> $FILENAMEecho "<td bgcolor=#FFCCFF>" >> $FILENAMEecho "<b> 2.mail</b>" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "____________________________________________" >> $FILENAME############## to put out the result ###############> $TEM_FILEtail -200 /usr/spool/mail/root |nl > $TEM_FILEfor i in `tail -2 $TEM_FILE`dobreakdone> $TEM_FILEtail -200 /usr/spool/mail/root > $TEM_FILEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEwhile [ "$?" == "0" ];doecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAME(( i=$i-1))tail -$i $TEM_FILE |line >> $FILENAMEdone##################### end ###############################echo "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "____________________________________________" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "</td>" >> $FILENAMEecho "</tr>" >> $FILENAME############################# 3.3 System Hardware Status #######################################echo "<tr>" >> $FILENAMEecho "<td bgcolor=#FFFFFF>" >> $FILENAMEecho "<b> 3.System Hardware Status</b>" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "____________________________________________" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "<i>----------- 3.1. CPU</i>---------------------" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAME########### to put out the result ########> $TEM_FILElsdev -Cc processor |nl> $TEM_FILEfor i in `tail -1 $TEM_FILE`dobreakdone(( i=$i+1 ))> $TEM_FILElsdev -Cc processor > $TEM_FILEwhile [ "$?" == "0" ];doecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAME(( i=$i-1))tail -$i $TEM_FILE |line >> $FILENAMEdone##################### end ##############echo "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'> " >> $FILENAMEecho "<i>----------- 3.2. memory------------------</i>" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAME########### to put out the result ########> $TEM_FILElsdev -Cc memory |nl > $TEM_FILEfor i in `tail -1 $TEM_FILE`dobreakdone> $TEM_FILElsdev -Cc memory > $TEM_FILEwhile [ "$?" == "0" ];doecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAME(( i=$i-1))tail -$i $TEM_FILE |line >> $FILENAMEdone##################### end ##############echo "<p style='word-spacing: 0; line-height: 150%; margin: 0'> " >> $FILENAMEecho "<i>----------- 3.3. adapter-----------------</i>" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAME########### to put out the result ########> $TEM_FILElsdev -Cc adapter |nl > $TEM_FILEfor i in `tail -1 $TEM_FILE`dobreakdone(( i=$i+1 ))> $TEM_FILElsdev -Cc adapter > $TEM_FILEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "<table border='0' width='100%' cellpadding='0' cellspacing='0' bordercolordark='#FFFFFF' align='center' >" >> $FILENAMEwhile [ "$?" == "0" ];do(( i=$i-1))echo "<tr>" >> $FILENAMEj=1for k in `tail -$i $TEM_FILE |line`docase $j in1)echo "<td width='70'>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAME;;2)echo "<td width='90'>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAME;;3)echo "<td width='80'>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAMEecho "<td >" >> $FILENAME;;*)echo $k >> $FILENAME;;esac((j=$j+1))doneecho "</td>" >>$FILENAMEecho "</tr>" >> $FILENAMEtail -$i $TEM_FILE |linedoneecho "</table>" >> $FILENAME##################### end ##############echo "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'> " >> $FILENAMEecho "<i>----------- 3.4. fiber channel-----------</i>" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAME########### to put out the result ########> $TEM_FILElsdev -Cc adapter |grep fc |nl> $TEM_FILEfor i in `tail -1 $TEM_FILE`dobreakdone(( i=$i+1))> $TEM_FILElsdev -Cc adapter |grep fc > $TEM_FILEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "<table border='0' width='100%' cellpadding='0' cellspacing='0'bordercolordark='#FFFFFF' align='center' >" >> $FILENAMEwhile [ "$?" == "0" ];do(( i=$i-1))echo "<tr>" >> $FILENAMEj=1for k in `tail -$i $TEM_FILE |line`docase $j in1)echo "<td width='70'>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAME;;2)echo "<td width='90'>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAME;;3)echo "<td width='80'>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAMEecho "<td >" >> $FILENAME;;*)echo $k >> $FILENAME;;esac((j=$j+1))doneecho "</td>" >>$FILENAMEecho "</tr>" >> $FILENAMEtail -$i $TEM_FILE |linedoneecho "</table>" >> $FILENAME##################### end ##############echo "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'> " >> $FILENAME echo "<i> -------- 3.5. network adapter---------</i>" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAME########### to put out the result ########> $TEM_FILElsdev -Cc adapter | grep ent |nl> $TEM_FILEfor i in `tail -1 $TEM_FILE`dobreakdone> $TEM_FILE(( i=$i+1))lsdev -Cc adapter | grep ent > $TEM_FILEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "<table border='0' width='100%' cellpadding='0' cellspacing='0' bordercolordark='#FFFFFF' align='center' >" >> $FILENAMEwhile [ "$?" == "0" ];do(( i=$i-1))echo "<tr>" >> $FILENAMEj=1for k in `tail -$i $TEM_FILE |line`docase $j in1)echo "<td width='70'>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAME;;2)echo "<td width='90'>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAME;;3)echo "<td width='90'>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAME;;4)echo "<td>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAME;;esac((j=$j+1))doneecho "</tr>" >> $FILENAMEtail -$i $TEM_FILE |linedoneecho "</table>" >> $FILENAME##################### end ##############echo "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'> " >> $FILENAME echo "<i>----------- 3.6. SCSI--------------------</i>" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAME########### to put out the result ########> $TEM_FILElsdev -Cc adapter | grep scsi |nl> $TEM_FILEfor i in `tail -1 $TEM_FILE`dobreakdone((i=$i+1))> $TEM_FILElsdev -Cc adapter | grep scsi > $TEM_FILEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "<table border='0' width='100%' cellpadding='0' cellspacing='0' bordercolordark='#FFFFFF' align='center' >" >> $FILENAMEwhile [ "$?" == "0" ];do(( i=$i-1))echo "<tr>" >> $FILENAMEj=1for k in `tail -$i $TEM_FILE |line`docase $j in1)echo "<td width='90'>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAME;;2)echo "<td width='90'>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAME;;3)echo "<td>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAME;;esac((j=$j+1))doneecho "</tr>" >> $FILENAMEtail -$i $TEM_FILE |linedoneecho "</table>" >> $FILENAME##################### end ##############echo "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'> " >> $FILENAME echo "<i>----------- 3.7. disk--------------------</i>" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAME########### to put out the result ########> $TEM_FILElsdev -Cc disk |nl> $TEM_FILEfor i in `tail -1 $TEM_FILE`dobreakdone((i=$i+1))> $TEM_FILElsdev -Cc disk > $TEM_FILEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "<table border='0' width='100%' cellpadding='0' cellspacing='0' bordercolordark='#FFFFFF' align='center' >" >> $FILENAMEwhile [ "$?" == "0" ];do(( i=$i-1))echo "<tr>" >> $FILENAMEj=1for k in `tail -$i $TEM_FILE |line`docase $j in1)### lebalecho "<td width='70'>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAME;;2)echo "<td width='100'>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAME;;3)echo "<td width='150'>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAME;;4)echo "<td width='24'>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAME;;5)echo "<td width='24'>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAMEecho "<td >" >> $FILENAME;;*)echo $k >> $FILENAME;;esac((j=$j+1))doneecho "</td>" >>$FILENAMEecho "</tr>" >> $FILENAMEtail -$i $TEM_FILE |linedoneecho "</table>" >> $FILENAME##################### end ##############echo "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'> " >> $FILENAME echo "<i>----------- 3.8. lspv-------------------</i>" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAME########### to put out the result ########> $TEM_FILElspv |nl> $TEM_FILEfor i in `tail -1 $TEM_FILE`dobreakdone((i=$i+1))> $TEM_FILElspv > $TEM_FILEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "<table border='0' width='100%' cellpadding='0' cellspacing='0' bordercolordark='#FFFFFF' align='center' >" >> $FILENAMEwhile [ "$?" == "0" ];do(( i=$i-1))echo "<tr>" >> $FILENAMEj=1for k in `tail -$i $TEM_FILE |line`docase $j in1)### lebalecho "<td width='70'>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAME;;2)echo "<td width='200'>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAME;;3)echo "<td width='70'>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAMEecho "<td >" >> $FILENAME;;*)echo $k >> $FILENAME;;esac((j=$j+1))doneecho "</td>" >>$FILENAMEecho "</tr>" >> $FILENAMEtail -$i $TEM_FILE |linedoneecho "</table>" >> $FILENAME##################### end ##############echo "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'> " >> $FILENAME echo "<i>----------- 3.9. tape--------------------</i>" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAME########### to put out the result ########> $TEM_FILElsdev -Cc tape |nl> $TEM_FILEfor i in `tail -1 $TEM_FILE`dobreakdone> $TEM_FILElsdev -Cc tape > $TEM_FILEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "<table border='0' width='100%' cellpadding='0' cellspacing='0' bordercolordark='#FFFFFF' align='center' >" >> $FILENAMEwhile [ "$?" == "0" ];do(( i=$i-1))echo "<tr>" >> $FILENAMEj=1for k in `tail -$i $TEM_FILE |line`docase $j in1)### lebalecho "<td width='70'>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAME;;2)echo "<td width='100'>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAME;;3)echo "<td width='150'>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAME;;4)echo "<td width='100'>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAME;;5)echo "<td width='100'>" >> $FILENAMEecho $k >> $FILENAMEecho "</td>" >>$FILENAMEecho "<td >" >> $FILENAME;;*)echo $k >> $FILENAME;;esac((j=$j+1))doneecho "</td>" >>$FILENAMEecho "</tr>" >> $FILENAMEtail -$i $TEM_FILE |linedoneecho "</table>" >> $FILENAME##################### end ##############echo "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'> " >> $FILENAME echo "____________________________________________" >> $FILENAMEecho "</td>" >> $FILENAMEecho "</tr>" >> $FILENAME############################# 3.4 VG info ########################################################echo "<tr>" >> $FILENAMEecho "<td bgcolor=#FFCCFF>" >> $FILENAMEecho "<b> 4. VG info </b>" >> $FILENAMEecho "</b><p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "____________________________________________" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "<i> -------- 4.1 lsvg---------------------</i>" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMElsvg >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "<i> -------- 4.2 lsvg -o -----------------</i>" >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMElsvg -o >> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "<i> -------- 4.3 -------------------------</i>">> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEfor i in `lsvg -o`doecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAMEecho "<i> -------- vg name:">> $FILENAMEecho $i >> $FILENAMEecho "---------------- " >> $FILENAMEecho "</i>">> $FILENAMEecho "<p style='word-spacing: 0; line-height: 150%; margin: 0'>" >> $FILENAME########### to put out the result ########。
超级经典的-AIX巡检脚本(改名自动巡检).sh

rm $FILENAME
fi
touch $FILENAME
########## 3. to produce the ".html" file #######
echo "<html>" >> $FILENAME
echo "<head>" >&t;meta http-equiv='Content-Type' content='text/html; charset=gb2312'>" >> $FILENAME
echo " Modeltyp:" $MODEL >> $FILENAME
echo "</b></i></font>" >> $FILENAME
echo "<p style='word-spacing: 0; line-height: 150%; margin: 0'><font face="Arial"><i><b>" >> $FILENAME
###################################################
#
#
# Performance Maintenance Script V2011.01
# for IBM Pseries & AIX
# ljl_vip@
DIRECTORY=/tmp/xj
aix crontab 语法

aix crontab 语法aixcrontab语法是一种用于设置定时任务的命令。
它可以在指定的时间执行指定的命令,这对于自动化管理非常有用。
下面是aix crontab语法的介绍:1. crontab文件的格式每个用户在aix系统中都有一个crontab文件,用于存储其定时任务。
该文件的格式如下:分时日月周命令其中,分表示分钟,取值范围为0-59;时表示小时,取值范围为0-23;日表示日期,取值范围为1-31;月表示月份,取值范围为1-12;周表示星期,取值范围为0-6,其中0表示周日。
2. crontab命令的使用在aix系统中,可以使用以下命令设置crontab任务:crontab [-u user] [-e|-l|-r]其中,-u选项可以指定用户,-e选项用于编辑用户的crontab 文件,-l选项用于列出用户的crontab任务,-r选项用于删除用户的crontab文件。
3. crontab任务的示例以下是一些常见的crontab任务示例:每天的凌晨3点执行一次脚本:0 3 * * * /path/to/script.sh每隔5分钟执行一次脚本:*/5 * * * * /path/to/script.sh每个月的第一天凌晨1点执行一次脚本:0 1 1 * * /path/to/script.sh每周五下午4点半执行一次脚本:30 16 * * 5 /path/to/script.sh4. crontab任务的注意事项在设置crontab任务时,需要注意以下事项:1)需要确保命令的执行路径正确,否则可能会导致执行失败。
2)需要使用绝对路径来指定脚本或命令,否则可能无法执行。
3)需要注意定时任务执行的时间,避免与其他任务冲突。
4)在编辑crontab文件时,需要注意语法的正确性,否则可能会导致任务无法执行。
总之,掌握aix crontab语法对于系统管理和自动化管理都是非常重要的。
希望这篇文章对大家有所帮助。
aix crontab 语法

aix crontab 语法AIX Crontab语法Crontab是一种用于在Unix和Linux系统上定期运行命令或脚本的工具。
在AIX系统上,Crontab也是一种非常有用的工具,可以帮助用户自动化任务,提高工作效率。
本文将介绍AIX Crontab语法,帮助用户更好地使用这个工具。
Crontab语法Crontab语法由五个字段组成,分别是分钟、小时、日期、月份和星期。
每个字段都有一些特定的值,用于指定任务运行的时间。
下面是AIX Crontab语法的详细说明:分钟:0-59小时:0-23日期:1-31月份:1-12星期:0-7(0和7都表示星期日)在每个字段中,可以使用逗号分隔多个值,表示任务将在这些值对应的时间运行。
例如,如果要在每天的上午9点和下午5点运行任务,可以在小时字段中输入“9,17”。
还可以使用“*”符号来表示所有可能的值。
例如,如果要在每小时的第10分钟运行任务,可以在分钟字段中输入“10”。
还可以使用“/”符号来表示间隔。
例如,如果要每隔5分钟运行一次任务,可以在分钟字段中输入“*/5”。
还可以使用“-”符号来表示范围。
例如,如果要在每个月的1号到10号之间运行任务,可以在日期字段中输入“1-10”。
示例下面是一些示例,演示如何使用AIX Crontab语法:1. 在每天的上午9点和下午5点运行任务:0 9,17 * * * command2. 每隔5分钟运行一次任务:*/5 * * * * command3. 在每个月的1号到10号之间运行任务:0 0 1-10 * * command4. 在每个星期日的上午10点运行任务:0 10 * * 0 command总结AIX Crontab语法是一种非常有用的工具,可以帮助用户自动化任务,提高工作效率。
本文介绍了AIX Crontab语法的详细说明和示例,希望能够帮助用户更好地使用这个工具。
AIX巡检脚本

#!/bin/ksh################################################################## ### Script: health_check.ksh ## pSerieshealth_check ################################################################### #### This program will check:# Filesystem sizes# LVM mapping/characteristics# The state of specific daemons# Performance information for paging, memory and I/O# Network adapters & statistics# Network routing# Network parms# LVM disk mapping# errpts################################################################### ##### date stamp for output file name.STAMP=$(date +"%Y%m%d") # 用日期命令生成时间戳# Directory and Filename variables for the outputHCDIR=/var/aixcheck # 临时文件所在目录HCFILE=${HCDIR}/checklog${STAMP}SERRFILE=${HCDIR}/errpts_${STAMP} # 简要错误输出LERRFILE=${HCDIR}/errptl_${STAMP} # 完整错误输出# Create the output directory and filemkdir -p ${HCDIR} # 创建输出文件目录rm -f ${HCFILE} # 清除重名的输出文件touch ${HCFILE} # 生成空的输出文件OSLEVEL=$(oslevel | sed -e 's/\.//g' | cut -c1-3) # 取版本号export OSLEVEL############################################################ functionpSeries_network## Gathers the following network information on the Server:# hostname# network adapters# network routes# network interfaces# network memory denials# network statistics# nfs statistics# /etc/hosts########################################################### functionpseries_network {printf "------------ Network Information ------------\n" >> ${HCFILE} 2>&1print -n "network, "print \\n "List the network configuration for $HOST..." >> ${HCFILE}print \\n "hostname " >> ${HCFILE} hostname>> ${HCFILE} 2>&1# 输出服务器名print \\n "network adapters " >> ${HCFILE} lsdev -Cc adapter | grep -i -E "Ether|fdd|atm " \>> ${HCFILE} 2>&1# 输出网络通信卡信息print \\n "network routing " >> ${HCFILE} netstat -rn>> ${HCFILE} 2>&1print \\n >> ${HCFILE} 2>&1 # 输出网络路由print \\n "network interfaces " >> ${HCFILE} netstat -in >> ${HCFILE} 2>&1 print \\n >> ${HCFILE} 2>&1 # 输出网络IP地址设置print \\n "network memory (only if denied)" >> ${HCFILE}if (( ${OSLEVEL} >= 432 )); thenextnetstats=$(no -a | grepextendednetstats | sed -e 's/[^01]//g')if [[ $debug = 1 ]]; thenprint \\n "exdendednetstats=$extnetstats" >> ${HCFILE}if [[ $extnetstats = 1 ]]; thennetstat -m 2>&1 | grep denied >> ${HCFILE} 2>&1elseprint \\n "AIX 4.3.2+ and extendednetstats NOT enabled!" >> ${HCFILE} 2>&1fielsenetstat -m 2>&1 | grep denied >> ${HCFILE} 2>&1fifiprint \\n "network stats" >> ${HCFILE} 2>&1 netstat -v 2>&1 | grep -E "STAT|S/W Transmit" >> ${HCFILE} 2>&1print \\n >> ${HCFILE} 2>&1# 输出网络通信内存不足信息(如果存在)print \\n "Checking for /.rhosts file for $HOST" >> ${HCFILE}home=${HOME}if [[ -f "${HOME}/.rhosts" ]]; thenprint \\n "${HOME}/.rhosts file permissions" >> ${HCFILE}ls -al /.rhosts>> ${HCFILE} 2>&1elseprint \\n "No ${HOME}/.rhosts file." >> ${HCFILE} 2>&1fiprint \\n >> ${HCFILE} 2>&1# 输出/.rhosts文件,HACMP某些版本需要此文件,但也可能导致安全问题,所以要特别注意print \\n "Checking /etc/hosts for $HOST..." >> ${HCFILE}ls -al /etc/hosts >> ${HCFILE} 2>&1print \\n >> ${HCFILE} 2>&1# 检查host文件表(用处不大,仅供参考)# Network options on the Server# This should catch thewall, sb_max, ipforwarding, tcp_sendspace,# tcp_recvspace, udp_sendspace, udp_recvspace, tcp_mssdflt,# rfc1323print -n "network options, "print \\n "no -a on the $HOST..." >> ${HCFILE}no -a | grep -E "extend|thewall|sb|ipfo|sends|recvs|mssd|1323|arp|tcp_pmt|ipqmax|arelocal" >> ${HCFILE} 2>&1print \\n >> ${HCFILE} 2>&1 # 检查重要的网络参数,这些参数对网络性能有影响print -n "arp bucket, "print \\n "arp -a on $HOST..." >> ${HCFILE}arp -a >> ${HCFILE} 2>&1 print \\n >> ${HCFILE} 2>&1 print \\n >> ${HCFILE} 2>&1# 检查arp表状况}############################################################# # functionpSeries_software## Gathers the following software information on the Server:# AIX level# AIX lppchk############################################################# functionpseries_software {# AIX level on the Serverprintf "------------ Software Information ----------\n" >> ${HCFILE} 2>&1print -n "AIX Level, "print \\n "Checking AIX level on $HOST..." >> ${HCFILE} oslevel>> ${HCFILE} 2>&1print \\n >> ${HCFILE} 2>&1lslpp -L >> ${HCFILE} 2>&1 # 检查操作系统版本# AIX Maintenance Levels - check for level of AIXprint -n "AIX MLs, "print \\n Checking Maintenance Level: >> ${HCFILE} 2>&1 if (( ${OSLEVEL} > 510 ));then#print \\n >> ${HCFILE} 2>&1oslevel -r >> ${HCFILE} 2>&1elseprint \\n The -r flag for oslevel not available in your AIX level >> ${HCFILE} 2>&1print \\n Checking ML using instfix command: >> ${HCFILE} 2>&1 instfix -i | grep AIX_ML >> ${HCFILE} 2>&1fiprint \\n >> ${HCFILE} 2>&1# 检查补丁版本# LPP Check on the Serverprint -n "lppchk, "print \\n "Checking LPPs with lppchk on $HOST..." >> ${HCFILE}lppchk -v >> ${HCFILE} 2>&1 # 检查安装的程序是否有错误# Check AIX environmentprint -n "environment, "print \\n "Checking AIX environment on $HOST..." >> ${HCFILE}lsattr -El sys0 >> ${HCFILE} 2>&1 # 检查操作系统基础参数# Linux Toolbox RPMs (Software Packages) installed on systemprint -n "RPM, "print \\n "Checking for Linux Toolbox Software..." >> ${HCFILE}rpm -qa>> ${HCFILE} 2>&1print \\n >> ${HCFILE} 2>&1}# 检查Linux程序包############################################################## # functionpSeries_hardware## Gathers the following hardware information on the Server# lscfg# lsattr# tty definition############################################################### functionpseries_hardware {# List configuration on the Serverprintf "------------Hardware Information-----------\n" >> ${HCFILE} 2>&1print -n "lscfg, "print \\n "List the system configuration for $HOST..." >> ${HCFILE}lscfg -vp>> ${HCFILE} 2>&1print \\n >> ${HCFILE} 2>&1 lsdev -C >> ${HCFILE} 2>&1print \\n >> ${HCFILE} 2>&1# 显示系统配置信息# Determine the value of cpuguardprint -n "lsattr, "print \\n "Determine the value of CPUguard for $HOST..." >> ${HCFILE}hascpu=$(lsattr -El sys0 | grep -i cpuguard) >> ${HCFILE} 2>&1if [ "$hascpu" = "" ]thenprint \\n CPUGuard not applicable on this architecture >> ${HCFILE} 2>&1elseprint \\n CPUGuard is applicable on this architecture >> ${HCFILE} 2>&1fiprint \\n >> ${HCFILE} 2>&1# 系统是否有CPU健康跟踪功能,此功能可以随时监视CPU,一旦发现问题,可以做单CPU隔离而不是停机# List TTY definitionsprint -n "ttys, "print \\n "Listing the tty's on the Server" >> ${HCFILE}lsdev -Cc tty>> ${HCFILE} 2>&1print \\n >> ${HCFILE} 2>&1print \\n >> ${HCFILE} 2>&1# 查看串口终端设置}###################################################### functionpSeries_processes## Gathers the following information on the Server:# subsystem status######################################################functionpseries_processes {# List the status of the subsystem on the Serverprintf "-----------Subsystem Information------------\n" >> ${HCFILE} 2>&1print -n "daemons, "print \\n "lssrc -a output" >> ${HCFILE}lssrc -a >> ${HCFILE} 2>&1 print \\n >> ${HCFILE} 2>&1 print \\n >> ${HCFILE} 2>&1# 检查网络守护进程情况}################################################### functionpSeries_users## Gathers the following information on the Server:# User definition# Group definition# Password definition################################################## functionpseries_users {# Verifies the correctness of user definitionprintf "------------User Information--------------\n" >> ${HCFILE} 2>&1print -n "users, "print \\n "User definition" >> ${HCFILE}usrck -n ALL >> ${HCFILE} 2>&1print \\n >> ${HCFILE} 2>&1# 检查用户状态# Verifies the correctness of group definitionprint -n "groups, "print \\n "Group definition" >> ${HCFILE}grpck -n ALL >> ${HCFILE} 2>&1print \\n >> ${HCFILE} 2>&1# 检查用户组状态# Verifies the correctness of password definitionprint -n "passwords, "print \\n "Password definition" >> ${HCFILE}pwdck -n ALL >> ${HCFILE} 2>&1print \\n >> ${HCFILE} 2>&1# 检查用户密码状态}################################################### functionpSeries_lvmfs## Gathers the following information on the Server:# lspv# lsvg# lsfs# df# Also, check disk utilization.################################################## functionpseries_lvmfs {# List LVM information on the Serveprintf "----------Logical Volume Information---------\n" >> ${HCFILE} 2>&1print -n "LVM, "print \\n "Listing the LVM and FS info on $HOST..." >> ${HCFILE}print \\n "lspv output" >> ${HCFILE} lspv>> ${HCFILE} 2>&1print \\n >> ${HCFILE} 2>&1 # 检查磁盘定义信息print \\n "lsdev for disks looking for Unavail" >> ${HCFILE}hasdisk=$(lsdev -C | grep disk | grep -v "Avail") >> ${HCFILE} 2>&1if [ "$hasdisk" = "" ]thenprint \\n No Unavailable disk >> ${HCFILE} 2>&1 elseprint \\n You have Unavailabe disk >> ${HCFILE} 2>&1fiprint \\n >> ${HCFILE} 2>&1 # 检查是否有不可用的磁盘定义print \\n "Volume Group Output" >> ${HCFILE}lsvg -o >> ${HCFILE} 2>&1 print \\n >> ${HCFILE} 2>&1 # 显示被激活的卷组# List Volume Group Summary Information"print \\n "Volume Group Summary output" >> ${HCFILE}for vg in `lsvg`dolsvg $vg >> ${HCFILE} 2>&1print \\n >> ${HCFILE} 2>&1lsvg -l $vg >> ${HCFILE} 2>&1print \\n >> ${HCFILE} 2>&1done# 显示每个被激活的卷组的详细信息print \\n "df output" >> ${HCFILE}df -k >> ${HCFILE} 2>&1 print \\n >> ${HCFILE} 2>&1 # 显示文件系统使用print \\n "lsfs output" >> ${HCFILE} lsfs>> ${HCFILE} 2>&1print \\n >> ${HCFILE} 2>&1 # 显示每个文件系统的详细情况print \\n "Disk Utilization output" >> ${HCFILE}lsvg -o | lsvg -i -p >> ${HCFILE} 2>&1print \\n >> ${HCFILE} 2>&1print \\n >> ${HCFILE} 2>&1# 显示每个卷组的磁盘使用情况}########################################################### functionpSeries_dump## Gathers information about the dump device on the Server:########################################################## functionpseries_dump {# List System Dump Informationprintf "----------- System Dump Information ---------\n" >> ${HCFILE} 2>&1print -n "System Dump Info, "print \\n "List System Dump Configuration" >> ${HCFILE}sysdumpdev -l >> ${HCFILE} 2>&1print \\n >> ${HCFILE} 2>&1print \\n "Check for Previous Dumps" >> ${HCFILE}sysdumpdev -L >> ${HCFILE} 2>&1print \\n >> ${HCFILE} 2>&1# 显示系统DUMP配置信息和状况}####################################################### functionpSeries_nfs## Gathers the following NFS information on the Server:# status of nfs subsystems# # of nfsd defined in the ODM# nfsstat# exported filesystems# nfso -a###################################################### functionpseries_nfs {printf "------------- NFS Information ---------------\n" >> ${HCFILE} 2>&1print -n "nfs, "print \\n "Listing NFS daemons" >> ${HCFILE}lssrc -g nfs>> ${HCFILE} 2>&1print \\n >> ${HCFILE} 2>&1 # 检查NFS设置print \\n "ODM nfsd entry" >> ${HCFILE} odmget -q subsysname=nfsdSRCsubsys>> ${HCFILE} 2>&1print \\n >> ${HCFILE} 2>&1 # NFS ODM信息print \\n "Number of NFS and biod daemons" >> ${HCFILE}ps -ef | grep "/usr/sbin/nfsd" | egrep -v grep>> ${HCFILE} 2>&1ps -ef | grep "/usr/sbin/biod" >> ${HCFILE} 2>&1 print \\n >> ${HCFILE} 2>&1 # 检查NFS守护进程是否启动print \\n "NFS daemon statistics" >> ${HCFILE} nfsstat>> ${HCFILE} 2>&1print \\n >> ${HCFILE} 2>&1 # NFS运行数据print \\n "Listing the nfs exports on the server" >> ${HCFILE} showmount -e >> ${HCFILE} 2>&1 print \\n >> ${HCFILE} 2>&1 # NFS文件系统使用情况print \\n "Listing NFS Options" >> ${HCFILE} 2>&1 nfso -a >> ${HCFILE} 2>&1print \\n >> ${HCFILE} 2>&1print \\n >> ${HCFILE} 2>&1# NFS参数设置}################################################### functionpSeries_perf## Gathers the following information on the Server:# lsps# vmstat# iostat# vmtune################################################## functionpseries_perf {# Check out the paging space on the Serverprintf "---------- Performance Information ---------\n" >> ${HCFILE} 2>&1print "Performance, "print \\n "Listing performance information for $HOST..." >> ${HCFILE}print \\n "lsps -a on $HOST..." >> ${HCFILE}lsps -a >> ${HCFILE} 2>&1 print \\n >> ${HCFILE} 2>&1 # 交换区使用情况# Virtual memoryprint -n "vmstat, "print \\n "vmstat on $HOST..." >> ${HCFILE}date>> ${HCFILE} 2>&1vmstat 2 10 >> ${HCFILE} 2>&1 print \\n >> ${HCFILE} 2>&1 # 系统性能信息# I/O info - Checks for hot disk over a period of 10 minutes.print -n "THE IOSTAT COMMAND WILL RUN FOR 10 MINUTES, "print \\n "iostat on $HOST..." >> ${HCFILE}if [[ -f "/usr/bin/iostat" ]]; thendate>> ${HCFILE} 2>&1numdisk=`lsdev -Cc disk | grephdisk |wc -l | awk '{print $1}'`letanyhd=0iostat 300 2 |grep "^hdisk" |tail -$numdisk |while read dsk tm k t kbrkbwdo {if [ $tm -ge 25 ] ; thenecho $(date +%T) $dsk $tm $k $kbr $kbw>> ${HCFILE} 2>&1letanyhd=1fi}doneif [ $anyhd -eq 0 ] ; thenprint \\n "No reported hot disk" >> ${HCFILE} 2>&1fielseprint \\n "No iostat file found" >> ${HCFILE} 2>&1fi# 检查热点磁盘# vmtune settingsprint -n "vmtune, "print \\n >> ${HCFILE} 2>&1 print \\n "vmtune on $HOST..." >> ${HCFILE}if (( $OSLEVEL > 510 )); thenprint -n "vmo output" >> ${HCFILE}vmo -a >> ${HCFILE} 2>&1print -n "ioo -a output" >> ${HCFILE}ioo -a >> ${HCFILE} 2>&1elseif [[ -f "/usr/samples/kernel/vmtune" ]]; then/usr/samples/kernel/vmtune>> ${HCFILE} 2>&1elseprint \\n "vmtune command not found" >> ${HCFILE} 2>&1fifiprint \\n >> ${HCFILE} 2>&1# 操作系统参数设置}################################################################## ##### MAINHealthCheck script################################################################## ################################################################ Gathering the pSeries Health Check information###########################################################print "p S e r i e s H E A L T H C H E C K"print "p S e r i e s H E A L T H C H E C K" \\n > ${HCFILE}datedate>> ${HCFILE}HOST=`hostname -s`echo $HOSTunset WCOLLprint "Your server name is $HOST"print "The rest of the information will be logged in ${HCFILE}..."print "Checking server $HOST ....." >> ${HCFILE}print "Gathering the information for $HOST:"print "Gathering the information for $HOST:" >> ${HCFILE}print \\n >> ${HCFILE} 2>&1pseries_softwarepseries_hardwarepseries_processespseries_userspseries_lvmfspseries_dumppseries_networkpseries_nfspseries_perfprint;############################################################ Gathering the error report information###########################################################print " Checking the errpt in short format on $HOST..."print \\n "Checking the errpt in short format on $HOST..." >> ${HCFILE}print \\n "Checking the errpt in short format on $HOST..." >> ${SERRFILE} errpt>> ${SERRFILE} 2>&1print " Checking the errpt in long format on $HOST..."print \\n "Checking the errpt in long format on $HOST..." >> ${HCFILE}print \\n "Checking the errpt in long format on $HOST..." >> ${LERRFILE}errpt -a >> ${LERRFILE} 2>&1 printprint "Health Check Completed!"print \\n "***** End of Health Check report. *****" \\n >> ${HCFILE}print \\n "***** End of Health Check report. *****" \\n >> ${SERRFILE}print \\n "***** End of Health Check report. *****" \\n >> ${LERRFILE}。
Aix-shell_入门

所有的UNIX® 用户都应该了解如何使用Korn Shell 脚本。
通过编写Shell 脚本,可以让您实现许多任务的自动化,并可以为您节约大量的时间。
初看起来,它似乎令人生畏,但只要遵循正确的指导,您就可以熟练地使用它。
本文将指导您编写自己的Korn Shell 脚本。
什么是Shell?IBM® AIX® 操作系统和其他的类UNIX 操作系统一样,都需要通过某种方式与内核进行通信。
这项任务正是通过使用Shell 来实现的。
您可以使用各种不同的Shell,但本文重点关注于Korn Shell。
Korn Shell 是AIX 所使用的缺省Shell。
当您登录到AIX 中时,将以某个目录的提示符作为开始。
缺省目录通常是您的home 目录。
之所以将其称为home 目录,是因为该目录的结构通常如下所示:当登录时,您将处于命令行或者命令提示符处。
这正是您输入UNIX 命令的地方。
您可以输入与UNIX 内核进行交互的Shell 命令。
这些命令可能简单到只有一行(比如查看日期),也可能为多行,而这取决于您所进行的操作。
清单1提供了一些示例命令。
清单 1. 示例命令有关Shell 命令的最棒的一项功能是,您可以将多个命令组合在一个称为脚本的文件中,它允许您依次运行多个命令。
当您必须一次又一次重复地运行相同的命令时,使用脚本非常合适。
您可以将这些命令放到一个Korn Shell 脚本中,而无需反复地键入这些命令。
编写您的第一个Korn Shell 脚本Korn Shell 脚本中的第一行是Shell 自身。
它被表示为下面的形式:要在AIX 中编写Korn Shell 脚本,您需要使用一种文本编辑器。
vi 是一种使用最广泛、且随处可见的文本编辑器。
开始接触时可能会觉得有点麻烦,但随着使用vi 的次数的增多,您将熟练地掌握它。
关于如何使用vi 文本编辑器,人们撰写了很多相关的书籍。
要开始编写您的第一个Korn Shell 脚本,首先需要打开vi 编辑器,并添加Shell 名称作为第一行。
AIX简介以及常用命令
AIX简介以及常用命令目录一、AIX简介 (3)1、简介 (3)2、常见目录说明 (3)2、系统环境变量文件(.profile) (3)二、AIX简单命令 (4)1、目录命令 (4)1)、显示目录命令pwd (4)2)、改变目录命令cd (4)3)、列目录命令ls (4)4)、建立目录命令mkdir (5)5)、删除目录命令rmdir (5)2、文件命令 (5)1)、显示文件命令cat (5)2)、分页显示命令more和pg (5)3)、改变文件访问权命令chmod (5)4)、改变属主命令chown (6)5)、改变用户组命令chgrp (6)6)、拷贝文件命令cp (6)7)、移动文件命令mv (6)8)、删除文件或目录命令rm (6)9)、grep命令用于搜索PatternList指定的模式 (7)10)、tail查看文件末尾命令 (7)3、vi文档编辑命令 (7)1)、插入或附加正文都是向文件中加入新内容, (7)2)、删除正文 (7)3)、修改正文 (8)4)、查找正文 (8)5)、保存文本与退出vi (8)4、进程控制命令 (8)1)、功能键 (8)2)、查看进程命令ps (8)3)、命令kill (8)4)、crontab定时调用命令 (9)5、通讯命令 (9)1)、远程登录命令rsh (9)2)、命令ping (9)3)、传输文件命令ftp (9)4)、常用ftp子命令: (9)5)、ifconfig查看(或设置)网络设备信息 (10)6)、netstat显示网络状况 (10)7)、telnet登陆命令 (10)8)、traceroute查看路由指向 (10)6、shell基础 (10)1)、输入/输出重定向 (10)2)、管道| (11)3)用户环境的控制 (11)7、其它命令 (11)1)、别名命令alias (11)2)、别名命令unalias (12)3)、日期命令date (12)4)、统计磁盘用量命令du (12)5)、查看各文件系统的使用情况命令df (12)6)、联机帮助命令man (12)7)、退出命令exit (12)8)、命令hostname (12)9)、命令id (12)10)、切换用户命令su (13)11)、errpt处理从错误日志得来的报表 (13)12)、banner显示大写大字 (13)13)、man帮助命令 (13)14)、passwd修改用户密码命令 (13)15)、oslevel查看操作系统版本 (13)16)、time显示时间 (13)7、性能监控命令 (14)topas (14)8、smit以及smitty命令 (14)一、A IX简介1、简介AIX全名为(AdvancedInteractiveExecutive),它是IBM公司的UNIX操作系统,整个系统的设计从网络、主机硬件系统,到操作系统完全遵守开放系统的原则。
AIX常用系统命令简介
AIX常用系统命令简介5.1系统开关机开机:机器刚接上电源,机器会进行自检,直至面板上的绿灯处于有节奏的闪烁时,按面板上的白色按钮,即开始启动机器系统关机命令及顺序:1.将应用顺序及数据库系统停止;2.利用#shutdown指令;5.2设备查看命令a)lsdev命令该命令用来查看系统设备信息。
#lsdev –Cc 设备类型常用的设备类型有:processor, disk, adapter, tape, memory, tty等。
下图为lsdev –Cc processor的显示结果。
b)lspv命令该命令用来查看系统硬盘信息。
#lspv 硬盘名用来查看具体硬盘的信息,下图为lspv hdisk0的显示结果。
#lspv -l 硬盘名用来查看硬盘上逻辑卷信息,下图为lspv –l hdisk0的显示结果。
#lspv –p 硬盘名查看该硬盘物理分区的信息。
下图为lspv –p hdisk0的显示结果。
c)lscfg命令该命令用来查看设备配置信息。
#lscfg –vl 设备名下图为lscfg –vl hdisk0的显示结果。
d)lsattr命令该命令用来查看设备的属性信息。
#lsattr -El设备名下图为lsattr –El rmt0的显示结果。
5.3逻辑卷操作命令a) mkvgmkvgb) lsvg该命令用来查看系统定义的VG(卷组)。
#lsvg -o查看系统当前激活的VG (卷组)。
下图为lsvg和lsvg –o的显示结果。
#lsvg VG名查看该VG(卷组)的信息,包括PP大小、多少,已使用(分配)的空间,自由空间大小等信息。
#lsvg -l VG名查看该VG(卷组)已经定义的逻辑卷。
下图为lsvg –p datavg和lsvg –l datatvg的显示结果。
#lsvg -o |lsvg -il列出所有系统mount上的逻辑卷。
下图为该命令的显示结果。
c) mklvd) lslv5.4文件系统操作命令a)smitty crfs该命令用来创建一个文件系统。
AIX系统主机日常检查脚本
AIX系统主机日常检查脚本#!/bin/sh## 首先载入配置文件,如果配置文件不存在,则报错退出#SOURCE=$HOME/config/configcheck_source(){if [ -r $SOURCE ]; then. $SOURCEelseecho "$(basename $0): Cannot locate the default setting file."exit 1fi}## 定义报表头#report_header(){HOSTIP=$(ifconfig -a | sed -n '2p' |awk '{print $2}') HOSTNAME=$(hostname)USER=`who am i | cut -d " " -f1`cat<<!Hostname: $HOSTNAME Server: $HOSTIPUser: $USER Time: $(date +%Y'-'%m'-'%d' '%H':'%M':'%S)SYSTEM CHECK REPORT===================!}## 定义日志文件存放的目录和日志文件名,将当前用户目录设置为LOG_PATH #LOG_PATH=$(echo $HOME)LOG_FILE=$LOG_PATH/log`date +%Y%m%d%H%M%S`## 备份历史文件#cd $LOG_PATHtest -f log2007*if [ "$?" -eq 0 ];thenmv $LOG_PATH/log2007* $LOG_PATH/niyl/ >/dev/null 2>&1 else:fi#define temp directory ,if not exist,create temp directory first. TEMP_PATH=$LOG_PATH/tempif [ -d $TEMP_PATH ];then:elsemkdir $TEMP_PATHfi## 载入环境设置#check_source## 输出报表头信息#report_header >>$LOG_FILE# 检查CPU的使用情况,这里使用vmstat命令echo "***************************************** Check CPU *****************************************">>$LOG_FILEvmstat 1 10 | awk '{print $0;if($1 ~ /^[0-9].*/)(totalcpu+=$16);(avecpu=100-totalcpu/10)}; END {print "The average usage ofcpu is :"avecpu}' >$TEMP_PATH/cpu_infocat $TEMP_PATH/cpu_info >>$LOG_FILEcpu_used_pct=`cat $TEMP_PATH/cpu_info | grep "The average usage of cpu is" |awk -F ":" '{print $2}' `if [ "$cpu_used_pct" -gt "$CPU_VALUE" ] ; thenecho "LOG-Warnning:`date +%Y'-'%m'-'%d' '%H':'%M':'%S`, CPU负载超过阀值设置,请检查系统!!">>$LOG_FILEelseecho "\t\t\t\t CPU负载正常!!">>$LOG_FILEfi## 内存使用监控,包括交换区的使用情况监控÷#echo >>$LOG_FILEecho >>$LOG_FILEecho "***************************************** check memory useage *****************************************">>$LOG_FILE cat $TEMP_PATH/cpu_info | awk '{print $0;if($1 ~ /^[0-9].*/)(totalpi+=$6)(totalpo+=$7)};\END {if(totalpi<10 && totalpo<10) print "\t\t\t\tMemory负载正常!!";if(totalpi>10 || totalpo>10) print "Memory负载异常,请检查系统!!"} '>>$LOG_FILE## 检查磁盘空间. ÷#echo >>$LOG_FILEecho >>$LOG_FILEecho "***************************************** check disk space*****************************************">>$LOG_FILEdf -k >>$LOG_FILEdf -k |grep -v proc |grep -v Filesystem |awk '{x=1*$4}{print $1","$2","$3","$4","$5","$6","$7}'>$TEMP_PATH/disk_infocat $TEMP_PATH/disk_info | grep -v '^#' | while read linedoitem1=$(echo $line | awk -F ',' '{print $1}')item2=$(echo $line | awk -F ',' '{print $2}')item3=$(echo $line | awk -F ',' '{print $3}')item4=$(echo $line | awk -F ',' '{print $4}' |awk -F '%' '{print $1}')item5=$(echo $line | awk -F ',' '{print $5}')item6=$(echo $line | awk -F ',' '{print $6}')item7=$(echo $line | awk -F ',' '{print $7}')if [ "$item4" -gt "$DISK_VALUE" ]; thenecho "LOG-Warnning: `date +%Y'-'%m'-'%d' '%H':'%M':'%S`, 磁盘$item7\t剩余空间不足,请处理!!" >>$LOG_FILEelseecho "\t\t\t\t 磁盘空间$item7\t\t使用正常!!" >>$LOG_FILEfidone## 检查磁盘的io进行监控,iostat#echo >>$LOG_FILEecho >>$LOG_FILEecho "***************************************** check iostat*****************************************">>$LOG_FILEiostat 1 3 >>$LOG_FILE## 对网络流量进行监控,在这里可以作一个主机列表,对每个主机ping检查网络是否连通。
AIX操作系统主要命令介绍
Unix(AIX)常用命令[语法]:ls [-RadCxmlnogrtucpFbqisf1] [目录或文件......][说明]:ls 命令列出指定目录下的文件,缺省目录为当前目录./,缺省输出顺序为纵向按字符顺序排列。
-R 递归地列出每个子目录的内容-a 列出所有文件,包括第一个字符为“.”的隐藏文件-d 若后面参数是目录,则只列出目录名而不列出目录内容,常与-l选项连用以显示目录状态。
-C 输出时多列显示-x 横向按字符顺序排列-m 输出按流式格式横向排列,文件名之间用逗号(,)分隔-l 长列表输出,显示文件详细信息,每行一个文件,从左至右依次是:文件存取模式链接数文件主文件组文件字节数上次修改时间其中文件存取模式用10个字母表示,从左至右的意义如下:第一个字母表示文件种类,可以是以下几种情况:d 为目录文件l 为链接b 为块文件c 为字符型文件p 为命名管道(FIFO)- 为普通文件后面9个字母分别表示文件主、同组用户、其他用户对文件的权力,用r表示可读,w 表示可写,x 表示可执行。
如果是设备文件,则在文件字节数处显示:主设备从设备。
-n 与-l选项相同,只是文件主用数字(即UID)显示,文件组用数字(即GID)表示-o 与-l选项相同,只是不显示文件组-g 与-l选项相同,只是不显示文件主-r 逆序排列-t 按时间顺序排列而非按名字-u 显示时间时使用上次访问时间而非上次修改时间-c 显示时间时使用上次修改i节点时间而非上次修改时间-p 若所列文件是目录文件,则在其后显示斜杠(/)-F 在目录文件后加’/’,在可执行文件后加’*’-b 文件名中若有非打印字符,则用八进制显示该字符-q 文件名中的打印字符用’?’表示-i 显示节点号-s 显示文件长度时使用块长度而非字节长度-f 将后面的参数解释为目录并列出其中的每一项-1 每行仅列一项[例子]:ls 列出当前目录下的文件ls -al /bin 以长列表的形式列出目录/bin 下的所有文件,包括隐藏文件1.2 pwd[语法]: pwd[说明]:本命令用于显示当前的工作目录[例子]:pwd 显示出当前的工作目录1.3 cd[语法]: cd [目录][说明]:本命令用于改变当前的工作目录,无参数时使用环境变量$HOME 作为其参数,$HOME 一般为注册时进入的路径。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Shell基础知识 基础知识
二、Shell的运行模式
交互式Shell 交互式
如:登录,退出,ftp
非交互式Shell 非交互式 如:从文件中获取输入的脚本
Shell基础知识 基础知识
三、什么是脚本(scripts)
Shell Script是放在文件中的一串Shell和操 作系统命令,它们可以被重复使用。本质上, Shell Script是命令行命令简单的组合到一个 文件里面。 例如:.profile文件就是一个脚本 在脚本文件中以# 在脚本文件中以#开始的行为注释行
条件与分支
六、逻辑分支-思考
下面的命令实现了什么功能? [ -f ”/tmp/err.log” ] && cat /tmp/err.log [ -d ”$LOGPATH” ] || { mkdir –p $LOGPATH cd $LOGPATH }
条件与分支
六、逻辑分支-case
case为多选择语句, 可以用case匹配一 个值或一个模式, 如果匹配成功,则 执行相应的命令 思考:;;的作用是什么?
= != -z -n 两个字符串是否相等 两个字符串是否不等 是否为空串 是否为非空串
条件与分支
三、字符串测试-示例
test ”abc” = ”ABC” [ -z $EDITOR ] [ $PWD != $HOME ] [ ”${var1}${var2}” = ” /chenw/lex.sh” ]
Shell基础知识 基础知识
四、Shell的种类
Bourne Shell
包括sh(Bourne shell、POSIX shell)、ksh(Korn shell)和bash(Bourne Again shell)
C Shell
包括csh(C shell)和tcsh(TENEX/TOPS shell)
Shellபைடு நூலகம்础知识 基础知识
五、各操作系统缺省Shell
AIX缺省的是Korn Shell Solaris和FreeBSD缺省的是Bourne Shell HP-UNIX缺省的是POSIX Shell Linux是Bourne Again Shell
环境和变量
环境和变量
一、什么是变量
变量可以保存一些特定的信息 变量可以定制用户本身的工作环境 shell将所有变量的内容均视为字符串 变量可以参与Shell的所有运算 变量在使用时以“$”来标定,如:$var,${var} 思考:什么时候使用$var和${var}? 答案:当无法界定一个变量时,如:${var}1
环境和变量
四、本地变量-设置(可能有部分不可用)
var=val var+val var:?val var?val var:=val var:-val 设置变量的值 如果设置了变量则重新设置其值 如果未设置,则显示未定义错误 如果未设置,则显示系统错误 如果未设置变量则设置其值 如果设置了则取其值,否则取指定值
TERM LOGNAME IFS - HOSTNAME 终端类型 登录名 shell的缺省域分隔符 上次切换路径时的当前路径 主机名称
环境和变量
四、本地变量-设置
VARIABLE-NAME=VARIABLE-VALUE 或 ${VARIABLE-NAME=VARIABLE-VALUE} =两边可以有空格 实际上ksh中不可有空格! 如果变量值包含空格则需要用引号括起来 ”和’的意义不同 例:var=abc,则”$var”和’$var’的值应分别为 何? 答案:”$var”=abc,’$var’=$var
Shell基础知识 基础知识
四、Shell的种类-Bourne Shell
是最初的UNIX shell由 Stephen R. Bourne编写 创立于20世纪70年代中期AT&T贝尔实验室 是一个交互式的命令解释器和命令编程语言 可运行作login shell或其子shell 只有login命令可以调用其作为login shell
VARIABLE-NAME=VARIABLE-VALUE export VARIABLE-NAME 例如: myvar=test export myvar 一行输入多个命令 或 myvar=test;export myvar 时需要以;分隔 或 export myvar=test
环境和变量
三、环境变量-设置
神奇的$ 神奇的$
神奇的$ 神奇的
一、变量重分类
变量可以分为四类:
环境变量 本地变量 位置变量- 位置变量-一般为命令行参数等 特定变量- 特定变量-如$@、$$等
神奇的$ 神奇的
二、位置变量
可以是命令行参数 可以是子shell的参数 可以是shell函数的参数 位置变量可以有任意多个 ? 命令行有最大长度限制 位置变量用$+数字来引用 位置变量只能用0~9来引用
逻辑分支
五、逻辑操作符号
-a 逻辑与 -o 逻辑或 && 逻辑与 || 逻辑或 如: [ -r err.log -a –s err.log ] [ -z ”$msg” -o ”$msg” = ” ” ] [ ”$num” -ge ”0” ] && [ ”$num” -lt ”10” ] 思考: [ -r err.log ] -a [ –s err.log ] 是否正确? 答案:不正确!
还可以使用set –a来指定所有的变量将被输出 到环境中,一般只在$HOME/.profile中使用 例: set –a PATH=/usr/bin:$HOME/bin EDITOR=vi
环境和变量
三、环境变量-显示与清除
显示: 显示:
echo $VARIABLE-NAME env 显示所有环境变量
环境和变量
四、本地变量-显示与清除
显示: 显示:
echo $VARIABLE-NAME echo “my name is : $name” echo ${name} ${age} echo “welcome ${name:-Tom}”
清除: 清除:
unset VARIABLE-NAME
环境和变量
Shell基础知识 基础知识
四、Shell的种类-POSIX Shell
POSIX shell 是Korn shell的一个变种. 当前 提供POSIX shell的最大卖主是HewlettPackard。在HP-UX 11.0 , POSIX shell 就是 /bin/sh,而bsh是/usr/old/bin/sh
注意需要在此处 各添加一个空格
非空文件 可写权限 文件有suid位设置 可执行权限
条件与分支
二、测试文件状态-示例
test -r myfile test -s err.log [ -d $mydir ] [ -f ${mydir}/srs.log ]
条件与分支
三、字符串测试
test 字符串 test 测试运算符 字符串 test 字符串 测试运算符 字符串 测试运算符为:
清除: 清除:
unset VARIABLE-NAME
环境和变量
三、环境变量-常用环境变量
PATH PS1 PS2 PS3 HOME EDITOR PWD 查询程序的路径变量 Shell的主提示符 Shell的第二提示符 root用户的提示符 用户的主目录 缺省的编辑器 当前路径
环境和变量
三、环境变量-常用环境变量
四、本地变量-只读变量
声明一个变量只读
readonly VARIABLE-NAME 或 readonly VARIABLE-NAME=VALUE
显示所有只读变量
直接在命令行执行readonly命令
如果试图修改一个只读变量则系统会报错
环境和变量
五、思考题
1.如何将变量传递到子shell? export 2.子shell中修改了父shell导出的变量是否会影 响该变量在父shell中的值?不会 3.试图使用一个未声明的变量时是否会出错? 不会 4.如何得知一个变量是否被声明了?var?val 5.自行了解getopts的用法。 这世界上有个东西叫man
条件与分支
四、数值测试
”数值” 测试运算符 ”数值” -eq 数值相等 -ne 数值不相等 -gt 大于 -lt 小于 -ge 大于或等于 -le 小于或等于 如果测试结果满足则返回0,否则返回1($?)
条件与分支
四、数值测试-示例
[ ”$num” -eq ”100” ] [ ”101” -ge ”100” ] [ ”$num1” –ne ”$num2” ]
环境和变量
二、变量的分类
本地变量
本地变量在用户shell的生命周期内使用,对其它shell没 有任何作用
环境变量
环境变量用于所有用户进程,一般在/etc/profile和 $HOME/.profile文件中进行设置,在login时系统自动读 取,也可通过命令行直接设置
环境和变量
三、环境变量-设置
Shell基础知识 基础知识
四、Shell的种类-C Shell
由Bill Joy编写 创立于20世纪80年代加利福尼亚大学 C语言风格 增加了命令历史、别名、文件名替换、作业控 制等功能
Shell基础知识 基础知识
四、Shell的种类-Korn Shell
由David Korn编写 创立于AT&T的贝尔实验室 结合了所有C shell的交互特性 融入了Bourne shell的语法 增加了数学计算、进程协作、行编辑等功能 符合POSIX标准
神奇的$ 神奇的
三、特定变量
$# 参数的个数 $* 所有的参数 $@ 同$*,使用时加”可以将每个参数以”括起 $$ 脚本运行的当前PID $! 后台运行的最后一个进程PID $- 显示shell的当前使用选项,同set $? 脚本的返回码,一般0表示正常