shell之备份+判断是否传输完成

#!/bin/bash
#by LC
#DIR=/root
DIR=/server/scripts
YUANFILE=hins423437.tar.gz
BAKFILE=hins423437_xtra_20.*.tar.gz
LC (){
  if [ `ls -l $DIR|grep "${BAKFILE}"|wc -l` -eq 1 ]
  then 
    DUYUAN=`ls -l $DIR|grep "${YUANFILE}"|awk ‘{print $5}‘`
    DUBAK=`ls -l $DIR|grep "${BAKFILE}"|awk ‘{print $5}‘`
    if [ ${DUBAK} -gt ${DUYUAN} ]
    then 
      echo "$(date +%F_%H-%M-%S)===wait===" &>>/server/logs/hyerp_bak.log
      #sleep 10
      sleep 30
      if [ `ls -l $DIR|grep "${BAKFILE}"|awk ‘{print $5}‘` -eq ${DUBAK} ]
      then
        /bin/sh /root/alirds.sh &>/server/logs/rds_bak.log
        echo "$(date +%F_%H-%M-%S)====ok====" &>>/server/logs/hyerp_bak.log
        return
      else
        echo "$(date +%F_%H-%M-%S)====No transfer====" &>>/server/logs/hyerp_bak.log
        #sleep 3
        sleep 60
        LC
      fi
    else
      echo "$(date +%F_%H-%M-%S)====No transfer is completed===" &>>/server/logs/hyerp_bak.log
      #sleep 3
      sleep 60
      LC
    fi 
  else
    echo "$(date +%F_%H-%M-%S)===cant find===" &>>/server/logs/hyerp_bak.log
    sleep 300
    LC
  fi
}
main (){
  LC
  echo "$(date +%F_%H-%M-%S)====MAIN====" &>>/server/logs/hyerp_bak.log
}
main
时间: 2024-10-18 01:51:54

shell之备份+判断是否传输完成的相关文章

[Shell]if 常用判断条件

IF 判断 之前也写过简单的shell脚本,也不是转职运维,和系统相关的工作比较少,所以不怎么熟练. 最近由于系统总是出现各种乱七八糟的问题,也没有人来协助,只好自己写shell脚本了,都是些基础的脚本,但由于shell的语法和通常的高级语言有些不一样,所以还是要系统的看下常用的部分. if语句就是很重要的一个. 这种文章很多,只是拿来主义,如果有心得体会也会加上,小计下以后备查. 基本结构:  if语句块需要使用if结束 if condition then statements elif co

shell中条件判断if中的-z到-d的意思

shell中条件判断if中的-z到-d的意思 [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真. [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真. [ -d FILE ] 如果 FILE 存在且是一个目录则为真. [ -e FILE ] 如果 FILE 存在则为真. [ -f FILE ] 如果 FILE 存在且是一个普通文件则为真. [ -g FILE ] 如果 FILE 存在且已经设置了SGID则

Shell脚本中判断输入参数个数的方法投稿:junjie 字体:[增加 减小] 类型:转载

Shell脚本中判断输入参数个数的方法 投稿:junjie 字体:[增加 减小] 类型:转载 这篇文章主要介绍了Shell脚本中判断输入参数个数的方法,使用内置变量$#即可实现判断输入了多少个参数,需要的朋友可以参考下 $#代表了命令行的参数数量,可以看以下实例: 复制代码 代码如下: if [ $# != 1 ] ; then echo "USAGE: $0 TABNAME" echo " e.g.: $0 CDR_CALL_20040701" exit 1; f

企业之ftp+shell+crontab备份生产数据

备份之FTP 目的:通过shell将备份的数据传到另一台服务器的ftp备份服务器. 模拟tomcat为生产数据. 环境: node1:192.168.1.220 ftp客户端生产服务器 node2:192.168.1.221ftp 服务端备份服务器 第一步:node1安装ftp客户端 yum install ftp –y 第二步:node2安装ftp服务端 yum install vsftpd –y /etc/init.d/vsftpd start chkconfig vsftpd on use

Shell脚本---条件判断

面向过程     顺序执行     选择执行:if;case     循环执行:for;while;until   循环需有退出条件 选择执行(选择执行的前提,就是条件测试)    条件测试方式(测试条件)     bash命令测试          bash命令有命令执行状态返回值          $?:用于上一条执行的命令状态返回值          0:成功执行          1-255:失败          可以使用exit命令,在脚本中自定义脚本状态返回值,如果不定义,脚本的状

SHELL 自动备份MYSQL数据库(备份单个数据库及所有数据库)

SHELL 自动备份MYSQL数据库 备份单个数据库及所有数据库 楓城浪子原创,转载请标明出处! 更多技术博文请见个人博客:https://fengchenglangzi.000webhostapp.com 微信bh19890922 QQ445718526.490425557 部分截图: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657

shell脚本真假判断(0为真,非0为假?或0为假,非0为真?)

在网络上,总有人说shell脚本的真假判断,有说0位真的,非0为假,但真的是这样吗? 做个实验,写个0的判断语句 执行结果是0 is true,那么我们想当然1是false了,做下测试: 然而执行的结果却大相径庭,0是ture,1也是ture 也就是说其他语言中(0为真,非0为假?或0为假,非0为真?)的理论均不成立. 那么linux是以什么来作为判断的呢 答案就是以命令执行后的状态,状态可用$?查看(echo $?显示0,表示执行成功,1表示执行失败) shell脚本真假判断(0为真,非0为假

shell中条件判断if中的-z到-d

shell中条件判断if中的-z到-d的意思 [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真.[ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真. [ -d FILE ] 如果 FILE 存在且是一个目录则为真. [ -e FILE ] 如果 FILE 存在则为真.[ -f FILE ] 如果 FILE 存在且是一个普通文件则为真. [ -g FILE ] 如果 FILE 存在且已经设置了SGID则为真

Linux | shell脚本-比较判断和运算语句

一.简介 在我们写shell脚本的过程中,经常需要作比较判断,例如比较哪个数字大,判断文件是否存在,判断文件是否是目录,判断是否为真等操作.有时候我们还需要做运行,例如加减乘除等等,今天就来简单介绍比较表达式和运行表达式. 二.shell比较判断 1.文件状态:表达式:[ -e 文件路径 ] 有空格隔开 例如:[ -e /root ] 判断/root 是否存在(1) -e 是否存在 存在为真(2) -d 是否是目录 是目录为真(3) -f 是否是文件 是文件 为真(4) -x 是否有执行权限 有