crontab shell 每5秒执行_常用shell脚本

1.通过进程名kill

ps -ef| grep tomcat|awk '{print $2}'|xargs kill -9

2.通过端口查看应用程序(例如:查找6028端口)

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

3.Window强制关闭进程并删除文件

tasklist 查询进程

taskkill /f /t 强制关闭进程和子进程

@echo offecho 清除搜狗广告程序,稍等......cd C:\Program Files (x86)\SmartCloudInput\1.4.4.10311taskkill -f -t -im SCHelper.exetaskkill /f /t /pid 端口tasklist | findstr "SCHelper.exe"del /f /s   SCHelper.exeecho 清除完成!

4.清空文件内容(产生日志文件过大,占用磁盘空间),可以与定时任务结合使用

每天早上6点执行    0  6 * * *  sh /log/CleanLogFile.sh

#!/bin/bashpath=/logfilename=$path/BigLog.txt#搜索大于10KB的文件#-size +10k#搜索小于10KB的文件#-size -10k#搜索等于10KB的文件#-size 10kif [ $# -ne 1 ]  then          #echo "默认设置文件大小为500M"          filesize=500M    else        filesize=$1fi echo "设置清除文件大小:$filesize"if [  -f "$filename" ]; then        rm -rf $filename    echo  "原始文件已删除"else    echo "$filename不存在"fi find $path -name "*.*"  -size +$filesize -exec ls -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定时任务

执行命令:

[root@localhost ~]# crontab -e

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

查看定时任务:

[root@localhost ~]# 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" root@机器IP

2.sftp.txt文件中命令

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

3.bat脚本、sftp.txt都已经弄好,接下来配置window定时任务

53d4e8bd3d12e7dcf69f3ef8ca230656.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值