Shell判断文件存在,rsync命令

判断文件夹是否存在

if [ ! -d "target" ]; then
  mkdir target
fi

判断能否删除文件夹

if [ -x "target" ]; then
  rm -rf target/*
fi

查找出所有.apk的文件,并签名

for file in $(ls ./ |grep .apk$)
do
    [ ! -d $file ] && echo $file 签名中...
done
echo '签名后的文件在当前目录的target目录下'
basepath=$(cd `dirname $0`; pwd)
#dirname $0,取得当前执行的脚本文件的父目录
#cd `dirname $0`,进入这个目录(切换当前工作目录)
#pwd,显示当前工作目录(cd执行后的)

谷歌浏览器跨域设置

#!/bin/bash
cd
basepath=$(pwd)
path=$(echo $basepath/chrome_tmp)
if [ ! -d $path ]; then
  mkdir $path
fi
open -n /Applications/Google\ Chrome.app/ --args --disable-web-security  --user-data-dir=$path
echo 已经启动跨域浏览器,临时目录:$pathd

远程拷贝命令

  • 远程拷贝命令,选项u,指定不覆盖原目录内容,
  • --exclude 'public_html/database.txt' 排除 "public_html" 文件夹下的 "database.txt" 文件
  • --exclude-from '/home/backup/exclude.txt' 排除多个文件夹和文件
  • rsync -avu --exclude-from '/opt/www/exclude.txt' /opt/www/static bbs.5fu8.com:/opt
  • rsync -avzu --progress /root/client/ [email protected]:/home/work/ #--progress可以查看拷贝的过程
  • 当前时间格式化 2018-06-22 02-19-41
  • date +"%Y-%m-%d %H-%M-%S"
    
    #!/bin/bash
    #远程拷贝备份文件
    if [ ! -f "/tmp/pland.web.static.update.tag.txt" ];then
    echo "文件不存在:/tmp/pland.web.static.update.tag.txt"
    exit 0
    fi

path=$(cat /tmp/pland.web.static.update.tag.txt)
if [ ! -d $path ]; then
echo "将备份目录不存在:$path"
exit 0
fi



today=$(date +"%Y%m/%d/")
rsync -rvu /opt/www/static bbs.5fu8.com:/opt
rsync -v $path.json bbs.5fu8.com:/opt/static/$today
rsync -vb --backup-dir=/opt/static/backup/$today /opt/www/static/
.html bbs.5fu8.com:/opt/static/
rm -rf /tmp/pland.web.static.update.tag.txt
echo "备份成功"
exit 0





## crontab语法
* 5 * * * * 指定每小时的第5分钟执行一次ls命令
* 30 5 * * * ls 指定每天的 5:30 执行ls命令
* 30 7 8 * * ls 指定每月8号的7:30分执行ls命令
* 30 5 8 6 * ls 指定每年的6月8日5:30执行ls命令
* 30 6 * * 0 ls 指定每星期日的6:30执行ls命令,0表示星期天,1表示星期1,以此类推
* 30 3 10,20 * * ls 每月10号及20号的3:30执行ls命令
* 0,30 18-23 * * * 在每天5:00至22:00之间每隔30分钟执行  */60 5-22 * * *

## 根据匹配的进程号杀掉进程
```bash
#!/bin/sh
#根据进程名杀死进程
if [ $# -lt 1 ]
then
  echo "缺少参数:procedure_name"
  exit 1
fi

PROCESS=`ps -ef|grep $1|grep -v grep|grep -v PPID|awk '{ print $2}'`
for i in $PROCESS
do
  echo "Kill the $1 process [ $i ]"
  kill -9 $i
done

#单条语句
ps -ef | grep procedure_name | grep -v grep | awk '{print $2}' | xargs kill -9
ps -ef | grep 进程名称 | grep -v grep | awk '{print $2}' | xargs kill -9 && mv 源文件 目标目录 && 运行指定脚本

文件数量统计和端口检测

  • ls |wc -w #查看当前目录下有多少个文件及文件夹需在终端输入
  • ls -l |wc -l #查看当前文件夹下有多少个文件,多少个子目录需在终端输入
  • ls -l |grep ^-|wc -l #查看当前文件夹中文件的数量,则需在终端输入
  • du -h --max-depth=1 #当前文件夹的大小
  • netstat -nat|grep -i "8082"|wc -l # 查看端口连接数情况
  • netstat -an|grep TIME_WAIT #查看等待中的端口
  • lsof -i #查看端口占用情况

作者的小程序

微信小程序,每天定时更新数据,欢迎收藏 微雅视频

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章