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 #查看端口占用情況

作者的小程序

微信小程序,每天定時更新數據,歡迎收藏 微雅視頻

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