shell:采用函数将具体目录与目标目录进行软连接

一、目标:

将某一目录整体通过软连接挂载到目标目录,可以方便于自身的管理与分析。

二、具体编写思路如下:

1.设置打印日志,方便问题定位,采用函数方式在多处可以引用;

2.将这个外挂软连接的方式用函数实现,方便在多处使用,同时,给具体目录更改对应的权限控制;

3.针对自己当前的业务使用上面的基本函数实现自我的功能。

三、具体脚本代码如下:

#!/bin/bash
#Program:
#History: 2018.12.20 zyf

#print timestamp
getTimeStamp()
{
    echo `date +"%Y-%m-%d %H:%M:%S"` 
}

#print log for analyzing
log()
{
    echo " $1"
    echo "`getTimeStamp` : $1" >> ${LOG_TEMPFILE2}
}

common_softlink()
{
   targetdir=$1
   sourcedir=$2
   
   if [ ! -d ${targetdir} ]
   then 
      mkdir -p ${targetdir}
      log "mkdir -p ${targetdir}"
   fi
   
   if [ -L ${sourcedir} ] 
   then
      log "rm ${sourcedir}"
      rm ${sourcedir}
   fi
   
   if [ -d ${sourcedir} ]
   then
      log "mv -f ${sourcedir} ${sourcedir}_${NOWTIME}"
      mv -f ${sourcedir} ${sourcedir}_${NOWTIME}
   fi
   
   ln -s ${targetdir} ${sourcedir}
   
   chmod 755 ${sourcedir}
   chown zyf:root ${sourcedir}
   chmod -R 755 ${targetdir}
   chown -R zyf:root ${targetdir}
}

init_softlink()
{
   UNAME=`uname -a`
   MICRONAME1=`echo $UNAME | cut -d ' ' -f 2`
   MICRONAME2=`echo $MICRONAME1 | cut -d '-' -f 1-3`
   log_dir=/home/log/$MICRONAME2/$MICRONAME1
   common_softlink "${log_dir}" "/home/zyf/microsvr/zyfcloud-order-service/logs/" 
}

###############main##############

log "init_softlink start..."
init_softlink
log "init_softlink end..."
log "[~INIT_SOFTLINK OPERATE SUCCESS~]" 

 

你可能感兴趣的:(Shell脚本开发)