`
hecal
  • 浏览: 79619 次
社区版块
存档分类
最新评论

bash shell 里的一些读文件、调用java程序、ftp操作

 
阅读更多

文件Common.sh:



SCRIPT_DIR=${BV_EOS_BAT_ROOT}/script

LIB_DIR=${BV_EOS_BAT_ROOT}/lib

SEND_DIR=${BV_EOS_BAT_ROOT}/send

SEND_CFG=${BV_EOS_BAT_ROOT}/send/cfg

SEND_TRANS=${BV_EOS_BAT_ROOT}/send/trans

SEND_TRANS_ERR=${BV_EOS_BAT_ROOT}/send/trans_err

SEND_WORK=${BV_EOS_BAT_ROOT}/send/work

SEND_BACKUP=${BV_EOS_BAT_ROOT}/send/backup

RECV_DIR=${BV_EOS_BAT_ROOT}/recv

RECV_CFG=${BV_EOS_BAT_ROOT}/recv/cfg

RECV_TRANS=${BV_EOS_BAT_ROOT}/recv/trans

RECV_TRANS_ERR=${BV_EOS_BAT_ROOT}/recv/trans_err

RECV_WORK=${BV_EOS_BAT_ROOT}/recv/work

RECV_BACKUP=${BV_EOS_BAT_ROOT}/recv/backup

STG_DIR=${BV_EOS_BAT_ROOT}/stg
STG_CFG=${BV_EOS_BAT_ROOT}/stg/cfg
STG_TRANS=${BV_EOS_BAT_ROOT}/stg/trans
STG_TRANS_ERR=${BV_EOS_BAT_ROOT}/stg/trans_err
STG_WORK=${BV_EOS_BAT_ROOT}/stg/work
STG_BACKUP=${BV_EOS_BAT_ROOT}/stg/backup

QRY_CFG=${BV_EOS_BAT_ROOT}/queryindex/cfg
MAIL_ERR=${BV_EOS_BAT_ROOT}/mail/send_err

AFFI_CFG=${BV_EOS_BAT_ROOT}/affi_ls/cfg

STATUS_DIR=${BV_EOS_BAT_ROOT}/status

AFFI_DIR=${BV_EOS_BAT_ROOT}/affi_ls

AFFI_TRANS=${BV_EOS_BAT_ROOT}/affi_ls/trans

AFFI_TRANS_ERR=${BV_EOS_BAT_ROOT}/affi_ls/trans_err

AFFI_WORK=${BV_EOS_BAT_ROOT}/affi_ls/work

AFFI_BACKUP=${BV_EOS_BAT_ROOT}/affi_ls/backup

LOG_DIR=${BV_EOS_BAT_ROOT}/log

SEND_LOG=${BV_EOS_BAT_ROOT}/log/send

RECV_LOG=${BV_EOS_BAT_ROOT}/log/recv

STAG_LOG=${BV_EOS_BAT_ROOT}/log/stg

AFFI_LOG=${BV_EOS_BAT_ROOT}/log/affi

MAIL_LOG=${BV_EOS_BAT_ROOT}/log/mail

NOTIF_LOG=${BV_EOS_BAT_ROOT}/log/notif

BATCHSERVICENAME=EosBatch

HULFT_PATH=/opt/hulft/bin


export BV_EOS_BAT_ROOT
export SCRIPT_DIR
export LIB_DIR
export SEND_DIR
export SEND_CFG
export SEND_TRANS
export SEND_TRANS_ERR
export SEND_WORK
export SEND_BACKUP
export RECV_DIR
export RECV_CFG
export RECV_TRANS
export RECV_TRANS_ERR
export RECV_WORK
export RECV_BACKUP
export STG_DIR
export STG_CFG
export STG_TRANS
export STG_TRANS_ERR
export STG_WORK
export STG_BACKUP
export STATUS_DIR
export AFFI_DIR
export AFFI_TRANS
export AFFI_TRANS_ERR
export AFFI_WORK
export AFFI_BACKUP
export LOG_DIR
export SEND_LOG
export RECV_LOG
export STAG_LOG
export AFFI_LOG
export MAIL_LOG
export NOTIF_LOG
export BATCHSERVICENAME
export HULFT_PATH

. ${BV_VAR_ROOT}/etc/bv1to1.conf.sh

export MAIL_LIB; MAIL_LIB=$BV1TO1_VAR/eosCommon/lib
classpath=$classpath:$LIB_DIR/eosbatch.jar:$MAIL_LIB/activation.jar:$MAIL_LIB/mail.jar:$MAIL_LIB/eoscommon.jar:$LIB_DIR/eosonline.jar:$LIB_DIR/struts.jar:$BV1TO1/CLASSES/commercecore.jar:$BV1TO1/webapps/webappCommon.jar

WriteErrLog( )
{
if [ -z $4 ]
then
LEVEL="ERROR"
else
LEVEL=$4
fi
TIME=`date '+%Y/%m/%d %H:%M:%S'`

case $1 in
1) echo "ERROR, $TIME, $LEVEL ${MODULE}で $2 " >> ${RECV_LOG}/$3
;;
2) echo "ERROR, $TIME, $LEVEL ${MODULE}で $2 " >> ${SEND_LOG}/$3
;;
3) echo "ERROR, $TIME, $LEVEL ${MODULE}で $2 " >> ${STAG_LOG}/$3
;;
4) echo "ERROR, $TIME, $LEVEL ${MODULE}で $2 " >> ${AFFI_LOG}/$3
;;
5) echo "ERROR, $TIME, $LEVEL ${MODULE}で $2 " >> ${MAIL_LOG}/$3
;;
6) echo "ERROR, $TIME, $LEVEL ${MODULE}で $2 " >> ${NOTIF_LOG}/$3
;;
esac
}

WriteNormalLog( )
{

if [ -z $3 ]
then
LEVEL="INFO"
else
LEVEL=$3
fi

TIME=`date '+%Y/%m/%d %H:%M:%S'`

case $1 in

1) logger -p local2.info "$LEVEL, $TIME, ${MODULE}で $2"
;;

2) logger -p local1.info "$LEVEL, $TIME, ${MODULE}で $2"
;;

3) logger -p local3.info "$LEVEL, $TIME, ${MODULE}で $2"
;;

4) logger -p local4.info "$LEVEL, $TIME, ${MODULE}で $2"
;;

5) logger -p local5.info "$LEVEL, $TIME, ${MODULE}で $2"
;;

6) logger -p local6.info "$LEVEL, $TIME, ${MODULE}で $2"
;;
esac

}

StatusManager( )
{
if [ $# -eq "1" ]
then
$BV1TO1/bin/java -cp $classpath -DBVService=$BATCHSERVICENAME com.nec.jp.eosweb.batch.common.StatusFlagManager $1
VALUE=$?
if [ $VALUE -ne "1" ]
then
return $VALUE
else
return $VALUE
fi
elif [ $# -eq "2" ]
then
if [ "$2" = "FLAG" ]
then
$BV1TO1/bin/java -cp $classpath -DBVService=$BATCHSERVICENAME com.nec.jp.eosweb.batch.common.StatusFlagManager $1 $2
VALUE=$?
if [ $VALUE -ne "1" ]
then
return $VALUE
else
return $VALUE
fi
else
$BV1TO1/bin/java -cp $classpath -DBVService=$BATCHSERVICENAME com.nec.jp.eosweb.batch.common.StatusFlagManager $1 $2
VALUE=$?
if [ $VALUE -ne "1" ]
then
return 0
else
return 1
fi
fi


elif [ $# -eq "3" ]
then
if [ $3 -eq "0" ]
then
$BV1TO1/bin/java -cp $classpath -DBVService=$BATCHSERVICENAME com.nec.jp.eosweb.batch.common.StatusFlagManager $1 $2
VALUE=$?
if [ $VALUE -ne "1" ]
then
return 0
else
return 1
fi
else
return 1
fi

elif [ $# -eq "4" ]
then
if [ $3 -eq "1" ]
then
$BV1TO1/bin/java -cp $classpath -DBVService=$BATCHSERVICENAME com.nec.jp.eosweb.batch.common.StatusFlagManager $1 $2
VALUE=$?
if [ $VALUE -ne "1" ]
then
$BV1TO1/bin/java -cp $classpath -DBVService=$BATCHSERVICENAME com.nec.jp.eosweb.batch.common.StatusFlagManager $4 "3"
VALUE=$?
if [ $VALUE -ne "1" ]
then
return 0
else
return 1
fi
else
return 1
fi
else
return 1
fi

else
return 1
fi
}

文件dump.sh

#!/bin/bash

BV_VAR_ROOT=/home/bvsys/bv1to1

BV_EOS_BAT_ROOT=$BV_VAR_ROOT/batch
. $BV_EOS_BAT_ROOT/script/Common.sh


STG_DUMP_DIR=${STG_WORK}/$1
DMPFILE="$1"".tar"
HOSTNAME="$2"
USER="bvsys"
PASSWORD="0WE5jKaU"

DATA_FLG=$1
CFG_FILE="$1".lst""


SHELLNAME=`basename $0`


TMPPROGRAMID=`echo $SHELLNAME|cut -d. -f1`
PROGRAMID="Stg""${DATA_FLG}"


ERR_FILE_HEAD="$TMPPROGRAMID"_"$DATA_FLG"
ERR_TIME=`date '+%Y%m%d%H%M%S'`
ERR_FILE_NAME="${ERR_FILE_HEAD}"_"${ERR_TIME}".err
MODULE="Out put batch AP"


WriteNormalLog "3" "Start"

if [ $# -ne "2" ]
then
WriteErrLog "3" "SMS6002E Wrong Parameter" "${ERR_FILE_NAME}"
WriteNormalLog "3" "Batch AP error end" "ERROR"
exit 2
fi


StatusManager $PROGRAMID "FLAG"
STATUS=$?

if [ $STATUS -eq "1" ]
then

MODULE="Out put batch AP"
ERR_TIME=`date '+%Y%m%d%H%M%S'`
ERR_FILE_NAME="${ERR_FILE_HEAD}"_"${ERR_TIME}".err
WriteErrLog "3" "SMS6005E Take status errors。" "${ERR_FILE_NAME}"
WriteNormalLog "3" "Batch AP error end" "ERROR"
exit 2
fi


if [ $STATUS -eq "3" ]
then
WriteNormalLog "3" "Before Ap is processing" "WARNING"
exit 1
fi

if [ $STATUS -eq "5" ]
then
WriteNormalLog "3" "Not do remains and Ap nomally end" "ERROR"
exit 0
fi

$BV1TO1/bin/java -cp $classpath -DTimePath=${STG_WORK} -DBVService=$BATCHSERVICENAME com.nec.jp.eosweb.batch.common.StatusTimeManager $PROGRAMID
STATUS=$?

if [ $STATUS -ne "0" ] || [ ! -e ${STG_WORK}/$PROGRAMID".TIME" ]
then
MODULE="Out put batch AP"
ERR_TIME=`date '+%Y%m%d%H%M%S'`
ERR_FILE_NAME="${ERR_FILE_HEAD}"_"${ERR_TIME}".err
#STATUS = 3
StatusManager $PROGRAMID 3
STATUS=$?
if [ $STATUS -ne "0" ]
then
WriteErrLog "3" "SMS6003E make status equal 3 error" "${ERR_FILE_NAME}"
fi
WriteErrLog "3" "SMS6006E take start time error" "${ERR_FILE_NAME}"
WriteNormalLog "3" "Ap abort" "ERROR"
exit 2
fi

exec 4<&0 0<${STG_WORK}/$PROGRAMID".TIME"
read STGSTIME
exec 0<&4
rm -f ${STG_WORK}/$PROGRAMID".TIME"

if [ -z "$STGSTIME" ]
then
MODULE="Out put batch AP"
ERR_TIME=`date '+%Y%m%d%H%M%S'`
ERR_FILE_NAME="${ERR_FILE_HEAD}"_"${ERR_TIME}".err
#STATUS= 3
StatusManager $PROGRAMID 3
STATUS=$?
if [ $STATUS -ne "0" ]
then
WriteErrLog "3" "SMS6003E make status equal 3 error" "${ERR_FILE_NAME}"
fi
WriteErrLog "3" "SMS6006E take start time error" "${ERR_FILE_NAME}"
WriteNormalLog "3" "Ap abort" "ERROR"
exit 2
fi

StatusManager $PROGRAMID 1
STATUS=$?
if [ $STATUS -eq "1" ]
then
MODULE="Out put batch AP"
ERR_TIME=`date '+%Y%m%d%H%M%S'`
ERR_FILE_NAME="${ERR_FILE_HEAD}"_"${ERR_TIME}".err
WriteErrLog "3" "SMS6003E make status equal 3 error" "${ERR_FILE_NAME}"
WriteNormalLog "3" "Ap abort" "ERROR"
exit 2
fi

if [ ! -e ${STG_CFG}/${CFG_FILE} ]
then
MODULE="Out put batch AP"
ERR_TIME=`date '+%Y%m%d%H%M%S'`
ERR_FILE_NAME="${ERR_FILE_HEAD}"_"${ERR_TIME}".err
#STATUS = 3
StatusManager $PROGRAMID 3
STATUS=$?
if [ $STATUS -ne "0" ]
then
#error logを出力する
WriteErrLog "3" "SMS6003E make status equal 3 error" "${ERR_FILE_NAME}"
fi
WriteErrLog "3" "SMS6007E parameter is error" "${ERR_FILE_NAME}"
WriteNormalLog "3" "Ap abort" "ERROR"
exit 2
fi

if [ ! -d ${STG_DUMP_DIR} ]
then
MODULE="Out put batch AP"
ERR_TIME=`date '+%Y%m%d%H%M%S'`
ERR_FILE_NAME="${ERR_FILE_HEAD}"_"${ERR_TIME}".err

StatusManager $PROGRAMID 3
STATUS=$?
if [ $STATUS -ne "0" ]
then
#error logを出力する
WriteErrLog "3" "SMS6003E make status equal 3 error" "${ERR_FILE_NAME}"
fi

WriteErrLog "3" "SFL6123E error directory" "${ERR_FILE_NAME}"
WriteNormalLog "3" "Ap abort" "ERROR"
exit 2
fi

STG_LOG_FILE="stg_common.log"
cd ${STG_DUMP_DIR}

STGNSTIME=`date '+%Y/%m/%d %H:%M:%S'`

YEARTIME=`echo $STGSTIME | awk '{print substr($0,3,2)}'`
MMDDTIME=`echo $STGSTIME | awk '{print substr($0,6,5)}'`
HMSTIME=`echo $STGSTIME | awk '{print substr($0,12,8)}'`
DUMPTIME="$MMDDTIME""/""$YEARTIME"" ""$HMSTIME"

$BV1TO1/bin/bv_stg_tool dump "$DUMPTIME" -n ${STG_CFG}/${CFG_FILE} >> ${STAG_LOG}/"${STG_LOG_FILE}"
STATUS=$?
if [ $STATUS -ne "0" ]
then
MODULE="Out put batch AP"
ERR_TIME=`date '+%Y%m%d%H%M%S'`
ERR_FILE_NAME="${ERR_FILE_HEAD}"_"${ERR_TIME}".err

$BV1TO1/bin/java -cp $classpath -DTimePath=${LIB_DIR} -DBVService=$BATCHSERVICENAME com.batch.common.StatusTimeManager ${PROGRAMID} "/"$STGNSTIME/""
STATUS=$?

if [ $STATUS -ne "0" ]
then
WriteErrLog "3" "SMS6003E make status equal 3 error" "${ERR_FILE_NAME}"
fi

StatusManager $PROGRAMID 3
STATUS_TMP=$?
if [ ${STATUS_TMP} -ne "0" ]
then
WriteErrLog "3" "SMS6003E make status equal 3 error" "${ERR_FILE_NAME}"
fi
if [ $STATUS -eq "4" ] || [ $STATUS -eq "3" ]
then
WriteNormalLog "3" "operated object is not exist" "WARNING"
exit 0
fi
WriteErrLog "3" "SMD6311E dump error" "${ERR_FILE_NAME}"
WriteNormalLog "3" "Ap abort" "ERROR"
exit 2
fi

STGNETIME=`date '+%Y/%m/%d %H:%M:%S'`
$BV1TO1/bin/java -cp $classpath -DTimePath=${LIB_DIR} -DBVService=$BATCHSERVICENAME com.batch.common.StatusTimeManager ${PROGRAMID} "/"$STGNSTIME/"" "/"$STGNETIME/""
STATUS=$?
if [ $STATUS -ne "0" ]
then
MODULE="Out put batch AP"
ERR_TIME=`date '+%Y%m%d%H%M%S'`
ERR_FILE_NAME="${ERR_FILE_HEAD}"_"${ERR_TIME}".err

WriteErrLog "3" "SMS6003E make status equal 3 error" "${ERR_FILE_NAME}"
WriteNormalLog "3" "Ap abort" "ERROR"
exit 2
fi

DUMP_TIME=`date '+%Y%m%d%H%M%S'`
DUMP_FILE=${DATA_FLG}.${DUMP_TIME}."tar"
tar cvf ${DUMP_FILE} current*
STATUS=$?
if [ $STATUS -ne "0" ]
then
MODULE="Out put batch AP"
ERR_TIME=`date '+%Y%m%d%H%M%S'`
ERR_FILE_NAME="${ERR_FILE_HEAD}"_"${ERR_TIME}".err
ERR_DIR=${DATA_FLG}."${ERR_TIME}"
mkdir ${STG_TRANS_ERR}/${ERR_DIR}
STATUS=$?
if [ $STATUS -eq "0" ]
then
mv ${STG_DUMP_DIR}/* ${STG_TRANS_ERR}/${ERR_DIR}/
fi
StatusManager $PROGRAMID 3
STATUS=$?
if [ $STATUS -ne "0" ]
then
WriteErrLog "3" "SMS6003E make status equal 3 error" "${ERR_FILE_NAME}"
fi
WriteErrLog "3" "SFL6114E tar error" "${ERR_FILE_NAME}"
WriteNormalLog "3" "Ap abort" "ERROR"
exit 2
fi

cd ${SCRIPT_DIR}
mv ${STG_DUMP_DIR}/${DUMP_FILE} ${STG_TRANS}/${DUMP_FILE}
STATUS=$?
if [ $STATUS -ne "0" ]
then
MODULE="Out put batch AP"
ERR_TIME=`date '+%Y%m%d%H%M%S'`
ERR_FILE_NAME="${ERR_FILE_HEAD}"_"${ERR_TIME}".err
mv ${STG_DUMP_DIR}/${DUMP_FILE} ${STG_TRANS_ERR}/${DUMP_FILE}
rm -rf ${STG_DUMP_DIR}/*
StatusManager $PROGRAMID 3
STATUS=$?
if [ $STATUS -ne "0" ]
then
WriteErrLog "3" "SMS6003E make status equal 3 error" "${ERR_FILE_NAME}"
fi
WriteErrLog "3" "SFL6115E copy file error" "${ERR_FILE_NAME}"
WriteNormalLog "3" "Ap abort" "ERROR"
exit 2
fi

rm -r ${STG_DUMP_DIR}/*
STATUS=$?
if [ $STATUS -ne "0" ]
then
MODULE="Out put batch AP"
ERR_TIME=`date '+%Y%m%d%H%M%S'`
ERR_FILE_NAME="${ERR_FILE_HEAD}"_"${ERR_TIME}".err
mv ${STG_TRANS}/${DUMP_FILE} ${STG_TRANS_ERR}/${DUMP_FILE}
StatusManager $PROGRAMID 3
STATUS=$?
if [ $STATUS -ne "0" ]
then
WriteErrLog "3" "SMS6003E make status equal 3 error" "${ERR_FILE_NAME}"
fi
WriteErrLog "3" "SFL6116E Delete file error" "${ERR_FILE_NAME}"
WriteNormalLog "3" "Ap abort" "ERROR"
exit 2
fi

#ftp transfer file
FTP_LOG="ftp.log"
sftp -vn << EOF > ${STAG_LOG}/"${FTP_LOG}"
open $HOSTNAME
user $USER $PASSWORD
binary
cd ${STG_TRANS}
put ${STG_TRANS}/${DUMP_FILE}
quit
EOF
grep "226 Transfer complete." ${STAG_LOG}/"${FTP_LOG}"
STATUS=$?
rm -f ${STAG_LOG}/"${FTP_LOG}"

if [ $STATUS -ne "0" ]
then
MODULE="Out put batch AP"
ERR_TIME=`date '+%Y%m%d%H%M%S'`
ERR_FILE_NAME="${ERR_FILE_HEAD}"_"${ERR_TIME}".err
mv ${STG_TRANS}/${DUMP_FILE} ${STG_TRANS_ERR}/${DUMP_FILE}
StatusManager $PROGRAMID 3
STATUS=$?
if [ $STATUS -ne "0" ]
then
WriteErrLog "3" "SMS6003E make status equal 3 error" "${ERR_FILE_NAME}"
fi
WriteErrLog "3" "SFL6117E ftp transfer file error" "${ERR_FILE_NAME}"
WriteNormalLog "3" "Ap abort" "ERROR"
exit 2
fi

mv ${STG_TRANS}/${DUMP_FILE} ${STG_BACKUP}/${DUMP_FILE}
STATUS=$?
if [ $STATUS -ne "0" ]
then
MODULE="Out put batch AP"
ERR_TIME=`date '+%Y%m%d%H%M%S'`
ERR_FILE_NAME="${ERR_FILE_HEAD}"_"${ERR_TIME}".err
mv ${STG_TRANS}/${DUMP_FILE} ${STG_TRANS_ERR}/${DUMP_FILE}
StatusManager $PROGRAMID 3
STATUS=$?
if [ $STATUS -ne "0" ]
then
WriteErrLog "3" "SMS6003E make status equal 3 error" "${ERR_FILE_NAME}"
fi
WriteErrLog "3" "SFL6123E copy file to backup directory error" "${ERR_FILE_NAME}"
WriteNormalLog "3" "Ap abort" "ERROR"
exit 2
fi

StatusManager $PROGRAMID 3
STATUS=$?
if [ $STATUS -eq "1" ]
then
MODULE="Out put batch AP"
ERR_TIME=`date '+%Y%m%d%H%M%S'`
ERR_FILE_NAME="${ERR_FILE_HEAD}"_"${ERR_TIME}".err
WriteErrLog "3" "SMS6003E make status equal 3 error" "${ERR_FILE_NAME}"
WriteNormalLog "3" "Ap abort" "ERROR"
exit 2
fi

WriteNormalLog "3" "Ap normally end"
exit 0

分享到:
评论

相关推荐

    linux下调用Shell实现文件上传ftp服务器

    根据提供的文件信息,本文将详细解释如何在Linux环境下利用Shell脚本实现文件通过FTP服务器的上传功能。这一过程涉及到了Shell脚本的基本语法、FTP命令的使用以及如何通过编程方式生成并执行这些脚本来完成文件的...

    shell ftp上传

    shell ftp 上传是使用 shell 脚本实现自动 ftp 上传文件的方法。下面将详细讲解该方法的实现步骤和代码解释。 连接 FTP 站点 在开始传输文件之前,需要连接到 FTP 站点。使用 `ftp` 命令连接到 FTP 站点,并指定...

    linux sftp、ftp上传(使用curl)

    在Linux操作系统中,数据传输是日常任务的一部分,无论是文件共享还是备份,SFTP(Secure File Transfer Protocol)和FTP(File Transfer Protocol)都是常用的工具。本文将深入探讨如何使用curl命令来实现在Linux...

    Unix网络相关命令 ftp 及打包压缩

    ### Unix网络相关命令:...通过上述步骤,我们不仅了解了FTP的基本命令和使用方法,还学习了如何在Unix/Linux系统中进行文件的打包压缩以及如何配置Java开发环境。这对于日常的系统管理和软件开发都是非常有用的技能。

    cront和ftp包以及备份mysql的shell

    在这个场景中,shell脚本将调用`mysqldump`进行备份,使用`crontab`设定定时,利用`ftp`或`lftp`进行文件传输,并可能包含`find`命令来删除旧文件。 6. **环境rpm包**:在Linux系统中,RPM(Red Hat Package ...

    Linux高级bash编程

    在for循环中操作文件 10-5. 在for循环中省略[list] 10-6. 使用命令替换来产生for循环的[list] 10-7. 对于二进制文件的一个grep替换 10-8. 列出系统上的所有用户 10-9. 在目录的所有文件中查找源字串 10-10. 列出...

    Winscp--传输文件工具、ftp功能

    Winscp是一款广受欢迎的开源文件传输协议(FTP)客户端,尤其在Linux用户中十分流行,但也支持Windows操作系统。它提供了一个图形化的用户界面,使得文件的上传、下载和管理变得非常简便。Winscp的主要功能包括SFTP...

    shell编程从入门到精通

    - **函数**:定义和调用Shell函数,提高代码复用性。 3. **Shell脚本编写** - **脚本结构**:了解脚本的头部声明(#!/bin/bash),注释的使用,以及如何组织脚本结构。 - **输入输出重定向**:标准输入(stdin)...

    Advanced Bash-Scripting Guide <>

    在for 循环中操作文件 10-5. 在for 循环中省略[list] 10-6. 使用命令替换来产生for 循环的[list] 10-7. 对于二进制文件的一个grep 替换 10-8. 列出系统上的所有用户 10-9. 在目录的所有文件中查找源字串 10-10. 列...

    Shell脚本100例-v0.8.rar

    这份压缩包中包含的PDF文档详细列举了100个实用的Shell脚本实例,涵盖了服务器管理、文件操作、流程控制等多个方面。下面,我们将对这些知识点进行深入探讨。 1. **基础语法**:Shell脚本的基础包括变量声明、赋值...

    shell 脚本的基本使用

    然后在主程序中调用 `check_network` 函数。当网络不可用时,会自动发送邮件通知管理员。 ### 六、总结 通过上述内容的学习,我们可以看到Shell脚本不仅是一种强大的工具,而且对于日常的工作有着重要的作用。无论...

    《操作系统原理及应用(Linux)》-王红-电子教案-

    7. Shell与脚本编程:学习Bash Shell的基本用法,编写Shell脚本,使用正则表达式进行文本处理。 8. Linux网络与服务:涵盖网络基础知识,TCP/IP协议栈,Linux网络配置,以及常用网络服务(如HTTP、FTP、DNS等)的...

    实战LINUX+SHELL编程与服务器管_part3、4

    1. Shell类型:介绍Bash、cshell(标签提到)和其他常见Shell的区别,重点讲解Bash Shell。 2. 变量:了解变量的声明、赋值和使用,包括环境变量、局部变量和位置参数。 3. 流程控制:学习if语句、for循环、while...

    linux程序设计权威指南

    最后,本书可能还包括一些实用的工具和脚本语言,如bash shell脚本编程,以及使用make工具来自动化构建过程。通过这些,开发者可以提高工作效率并更好地维护项目。 总而言之,《Linux程序设计权威指南》是一本全面...

    shell 编程指南(2) 豆豆

    4. **网络操作**:进行简单的网络诊断,如`ping`、`traceroute`,以及文件传输工具`scp`、`ftp`。 5. **性能监控**:使用`top`、`vmstat`、`iostat`等工具监控系统资源使用情况。 通过深入学习这个Shell编程指南,...

    Linux编程指南 源程序

    1. **系统调用**:Linux系统调用是用户进程与操作系统内核交互的主要接口,如open()用于打开文件,read()和write()用于读写文件,fork()创建子进程,exec()执行新的程序等。理解并熟练使用这些系统调用是Linux编程的...

    Unix程序设计教案

    这份"Unix程序设计教案"将深入探讨Unix系统的编程基础,包括系统调用、I/O操作、进程控制、文件系统、网络编程等核心主题。 1. **Unix系统调用**:Unix提供了丰富的系统调用接口,如open、close、read、write用于...

    LINUX与UNIX SHELL编程指南.

    3. **Shell环境**:了解Shell启动过程、Shell变量(如PATH、HOME、PS1等)以及环境配置文件(如.bashrc、.bash_profile),学会自定义Shell工作环境。 4. **基本命令**:掌握文件和目录操作命令,如cd、ls、mkdir、...

    bash-sys:Bash框架

    4. **命令行参数解析**:Bash-Sys可能提供了一种标准的方式来解析命令行参数,使得脚本的调用更加灵活和可控。 5. **脚本模板和最佳实践**:为了确保一致性,框架可能会提供预定义的脚本模板,遵循最佳的Bash编程...

    14.Shell脚本编程之expect.md

    通过使用 Expect,可以将原本需要手动进行的操作,例如 SSH 登录、FTP 登录等,编写成脚本自动执行。这在需要对多台服务器执行相同操作的场景下尤其有用,能够显著提高系统管理员的工作效率。 ### 2. 安装 Expect ...

Global site tag (gtag.js) - Google Analytics