shell 用技巧

1:查看一个目录是否已经mount --bind

执行 mountpoint -q /test/mount
echo $? 如果是0表示已经mount

1.1 根据mount上否进行程序启动

#!/bin/bash
file_path0=$(cd $(dirname $0); pwd)
file_path1=${file_path0}/HSRPD/logger/check.txt
function  kill_detect(){
	file=${file_path0}/HSRPD/detect_pid_list.txt
    kill $(cat $file)
}
function start_detect(){
   gnome-terminal -- /usr/bin/python3  $file_path0/HSRPD/main_HSRPD.py & 
}
function whether_changed(){
	echo $file_path1
    file_old_stat1=$(stat -c %y $file_path1)
   
    while [[ true ]]; do
	 mountpoint -q /home/lxkj/cifsshare
   	 if [ $? -eq 0 ];then
		sleep 20
		if [ -f "$file_path1" ]; then
		    file_new_stat1=$(stat -c %y  $file_path1)
				echo $file_new_stat1
		    if [ "echo $file_old_stat1" =  "echo $file_new_stat1" ]; then
		        echo "### In ${check_time}s ,${file_path1} does not change ###"
		        kill_detect
			sleep 5 
		        start_detect
		    else
		        echo $file_old_stat1
		        file_old_stat1=$file_new_stat1
		        echo "file change $file_old_stat1"
		    fi
		else
		   echo "file hardware.prom no exit "
		fi
	else
		kill_detect		
		echo "dir not mount "
		echo '123' | sudo -S mount -t cifs //192.168.0.70/ssd /home/lxkj/cifsshare -o username=root,password=root
		sleep 5		
		continue
	fi
     done
}
function start_prg(){
	mountpoint -q /home/lxkj/cifsshare
	if [ $? -eq 0 ];then
		whether_changed
	else
		echo '123' | sudo -S mount -t cifs //192.168.0.70/ssd /home/lxkj/cifsshare -o username=root,password=root
		whether_changed
	fi
}
start_prg

2: 批量删除文件

#!/bin/bash

#移除/删除文件路径
removeFolder="/home/lxkj/cifsshare"
dir="/home/lxkj/cifsshare"

#输入待删除文件的日期 ./deleteZip.sh 20191212
removedate=$1

#判断位置参数是否为空
#if [ $# -ne 1 ];then             

#  echo "Usage $0 removedate"
#  exit
#fi
#echo "removedate: $removedate"

#获取文件夹下面所有文件名称
function  kill_detect(){
files=$(ls $dir)
#echo $files

#循环遍历删除匹配的文件
for file in ${files[*]}
do
	#echo $file

	# 删除压缩包文件
	if [[ $file = $removedate*.enc ]];then             
	  echo "delete $dir/$file"
	  rm -rf $dir/$file
	  #echo "remove $dir/$file to $removeFolder"
	  #mv ./$file $removeFolder/.
	  # >> del$removedate.log
	fi

	# 删除excel文件
	if [[ $file = $removedate*.txt ]];then             
	  echo "delete $dir/$file"
	  rm -rf $dir/$file
	  #echo "remove $dir/$file to $removeFolder"
	  #mv ./$file $removeFolder/.
	  # >> del$removedate.log
	fi

done
	echo "delete success!"
}
while true
do
kill_detect
sleep 10
done

3 压缩文件,解压缩

  1 tar -zcvf - img | split -b 10m -d - pic   压缩img 每个img10m大小,压缩后以pic为开头
  2 cat pic* > pic.tar.gz                     将pic 文件和成一个文件
  3 tar -zxvf pic.tar.gz                        解压

4: 路径问题

#!/bin/bash
file_path0=$(cd $(dirname $0); pwd) //   获得工作目录执行这条命令的所在目录
echo $file_path0
dataname=$(cd $(dirname $file_path0);pwd)//   获得工作目录执行这条命令的所在目录的上一级目录
echo $dataname

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值