1. 程式人生 > 其它 >crontab shell 每5秒執行_常用shell指令碼

crontab shell 每5秒執行_常用shell指令碼

技術標籤:crontab shell 每5秒執行

1.通過程序名kill

ps-ef|greptomcat|awk'{print$2}'|xargskill-9

2.通過埠檢視應用程式(例如:查詢6028埠)

ps-ef|grep`netstat-anpl|grep6028|awkNR==1'{print$7}'|grep-o"[0-9]*[0-9]"`

3.Window強制關閉程序並刪除檔案

tasklist 查詢程序

taskkill /f /t 強制關閉程序和子程序

@echooffecho清除搜狗廣告程式,稍等......cdC:\ProgramFiles(x86)\SmartCloudInput\1.4.4.10311taskkill-f-t-imSCHelper.exetaskkill/f/t/pid埠tasklist|findstr"SCHelper.exe"del/f/sSCHelper.exeecho 清除完成!

4.清空檔案內容(產生日誌檔案過大,佔用磁碟空間),可以與定時任務結合使用

每天早上6點執行 0 6 * * * sh /log/CleanLogFile.sh

#!/bin/bashpath=/logfilename=$path/BigLog.txt#搜尋大於10KB的檔案#-size +10k#搜尋小於10KB的檔案#-size -10k#搜尋等於10KB的檔案#-size10kif [ $# -ne 1 ]  then          #echo "預設設定檔案大小為500M"          filesize=500M    else        filesize=$1fiecho"設定清除檔案大小:$filesize"if [  -f "$filename" ]; then        rm -rf $filename    echo  "原始檔案已刪除"else    echo "$filename不存在"fifind$path-name"*.*"-size+$filesize-execls-lh{}\;|awk'{print$5,$9}'>$filenamefor line in `cat $filename`do  #如果有匹配的內容則立即返回狀態值0    echo "$line" | grep -q "$path"    #$? 是指上一條命令的執行狀態, 0就是正常    if [  $? -eq 0 ]    then        #獲取檔案型別        filetype=${line#*.}        if [ $filetype == "zip"  ];then            echo "rm -rf $line"            rm -rf $line        else            echo "執行清空命令 cat /dev/null > $line"            cat /dev/null  >  $line        fi    fidone

編寫shell定時任務

執行命令:

[[email protected] ~]# crontab -e

10 0 * * */log/CleanLogFile.sh >/dev/null 2>&1

檢視定時任務:

[[email protected] ~]# crontab -l
10 0 * * */log/CleanLogFile.sh>/dev/null 2>&1

5.從Linux備份檔案到Windows機器

shell 指令碼

#!/bin/bash#SHELL_DAY=$(date '+%Y%m%d%H%M%S')SHELL_DAY=$(date '+%Y%m%d')BACK_DIR="/data/sql_bak"HOST="192.168.101.1"ACCOUNT="root"MYSQLDUMP="/usr/local/mysql5.7/bin/mysqldump"${MYSQLDUMP} -u${ACCOUNT} -p'root123' personal > ${BACK_DIR}/test/personal_${SHELL_DAY}.sql

從A機器到B機器備份檔案資料,為了保護資料不被丟失或者A機器中的資料被誤刪後,公司系統能正常執行。如果是Linux機器之間的拷貝可以寫一個shell拷貝指令碼再新建crontab任務即可完成,如果是window機器之間的拷貝可以寫一個批處理再新建個任務計劃即可,但是從Linux拷貝到window機器,會想到使用ftp登陸進行拷貝,發現ftp connect :連線超時,查詢Linux機器ftp啟動正常,生無可戀的樣子,此時我們可以藉助psftp工具來完成自動下載的批處理指令碼

psftp、bat指令碼、sftp.txt 3個放在同一目錄,否則執行過程會找不到對應檔案

1.編寫bat指令碼

使用者名稱密碼登陸

@echo offcd D:\toolspsftp 機器IP -l 使用者 -pw 密碼 -b "sftp.txt"

配置ssh免密登陸

@echo offcd D:\toolssftp -b "sftp.txt" [email protected]機器IP

2.sftp.txt檔案中命令

lcd C:\sqlbackcd /home/www/sql_bakmget abc*rm abc*bye

3.bat指令碼、sftp.txt都已經弄好,接下來配置window定時任務

53d4e8bd3d12e7dcf69f3ef8ca230656.png