一些脚本

功能:目录下面有 batch.total.1453804488.01.dat  batch.total.1453804488.01.md5

         batch.total.1453804488.02.dat  batch.total.1453804488.02.md5

         batch.total.1453804488.01.dat  batch.total.1453804488.03.md5

         ...

         index.list.1453804488.dat  index.list.1453804488.md5

文件;

其中index.list.1453804488.dat 是索引文件,里面就是所有batch开头文件名字

batch.total.1453804488.01.dat  是数据文件

  .md5 是校验文件,用文件大小校验

每五分钟定时产生 realtime.add.1453802333.dat ealtime.add.1453802333.01.md5 这样的文件,1453802333是时间戳

每天需要把realtime.add.1453802333.dat 写入 batch.total.1453804488.03.dat 文件,batch.total.1453804488.03.dat 达到一定大小就创建 batch.total.1453804488.04.dat文件

DIRLIST=($TOPIC_PATH_FROM $REPLY_PATH_FROM $USER_PATH_FROM)

for dir in ${DIRLIST[@]};do
	rm $dir/$RELLY_INDEX
	curfile=0
	for i in $(seq 20);do
		count=$i
		if [ "$i" -lt "10" ];then
			count=0$i
		fi
		if [ -f $dir/batch.total.$TIME.$count.dat ];then
			curfile=$count
			echo batch.total.$TIME.$curfile.dat >> $dir/index.list.$TIME.dat
		else
			curfile=$count
			break
		fi
	done
	ls -l $dir/index.list.$TIME.dat | cut -d ‘ ‘ -f 5 > $dir/index.list.$TIME.md5
	nowfile=$[ $curfile - 1 ]
	if [ "$curfile" -lt "10" ];then
		nowfile=0$nowfile
	fi
	file_size=`ls -l $dir/batch.total.$TIME.$nowfile.dat | cut -d ‘ ‘ -f 5`
	if [ "$file_size" -ge "20000" ];then #1202949134 - 1G
		nowfile=$[ $nowfile + 1 ]
		if [ "$curfile" -lt "10" ];then
			nowfile=0$nowfile
		fi
		touch $dir/batch.total.$TIME.$nowfile.dat
		echo batch.total.$TIME.$nowfile.dat >> $dir/index.list.$TIME.dat
		ls -l $dir/index.list.$TIME.dat | cut -d ‘ ‘ -f 5 > $dir/index.list.$TIME.md5
	fi
	cat $dir/$RELLY_LOG >> $dir/batch.total.$TIME.$nowfile.dat
	ls -l $dir/batch.total.$TIME.$nowfile.dat | cut -d ‘ ‘ -f 5 > $dir/batch.total.$TIME.$nowfile.md5
	rm $dir/$RELLY_LOG
	rm $dir/$RELLY_LOG_MD5
done

  

scp 自动输入密码 pcp.sh

./pcp.sh $HOST $PORT $USR $PASSWORD ${TOPIC_PATH_FROM}/$LOG      $TOPIC_PATH

把上面这段写入脚本里面就可以了

#!/usr/bin/expect --

if { [llength $argv] < 6} { 

	puts "usage: $argv0 ip port user passwd filename destpath"
	exit 1
}
set success 0

set maxRetry 1
for {set retryNum 0} {$retryNum<$maxRetry} {incr retryNum} {

    spawn /usr/local/bin/scp -r -P[lindex $argv 1] [lindex $argv 4] [lindex $argv 2]@[lindex $argv 0]:[lindex $argv 5]

    set timeout -1
    expect {
        "password:" {
            send "[lindex $argv 3]\r"
            set timeout -1
            expect eof
            set success 1
            break
        }

        "yes/no)?" {
            send "yes\r"
            expect "password:" {
                send "[lindex $argv 3]\r"
                set timeout -1
                expect eof
                set success 1
                break
            }
        }

        timeout {continue}

        eof {continue}
    }
}

if { $success==0 } {
    exit 1
}

  

时间: 2024-10-12 22:11:42

一些脚本的相关文章

【HTML5】用脚本控制交互元素details元素的使用

1.源码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Con

AD 脚本kixtart运用之三(添加windows共享打印机)

在http://windyma.blog.51cto.com/661702/1967027文章,已做好用户脚本基础上 在脚本文件kixtart.kix里添加如下内容: --------------------------------------- IF INGROUP ("Color_Printer") If AddPrinterConnection ("\\zsprinter.nccn.int\NEO-Color-Printer") = 0 ? "Add

WEB页面,WEB环境版本,数据库,整站备份脚本

#!/bin/bash # #WEB页面,WEB环境版本,数据库,整站备份脚本 #当发生某个原因导致整个服务器无法恢复时,利用上面备份的相关数据即可重做一台一样的服务器 date_a=`date +%Y%m%d-%H%M%S` mkdir -p /web_bak/${date_a}/conf &> /dev/null mkdir -p /web_bak/${date_a}/web &> /dev/null mkdir -p /web_bak/${date_a}/mysql &a

windows PAC脚本解析的软件 pac syntax检查

参考文档: https://zhuanlan.zhihu.com/p/22166179?refer=barretlee https://github.com/pacparser/pacparser https://community.mcafee.com/thread/47557?tstart=0 动态在线检查网页测试i: http://home.thorsen.pm/proxyforurl 安装步骤参考: 环境(centos6.7 python环境默认2.6 2.7 都可以) https://

20.5 Shell脚本中的逻辑判断;20.6 文件目录属性判断;20.7 if特殊用法;20.8 20.9 cace判断(上下)

扩展: select用法 http://www.apelearn.com/bbs/thread-7950-1-1.html 20.5 Shell脚本中的逻辑判断 格式1:if 条件 ; then 语句; fi 1. 创建if1.sh测试脚本: [[email protected] ~]# vi if1.sh a=5,如果a大于3,满足这个条件,显示ok 添加内容: #!/bin/bash a=5 if [ $a -gt 3 ] then echo ok fi 2. 执行if1.sh脚本: [[e

20.1 Shell脚本介绍;20.2 Shell脚本结构和执行;20.3 date命令用法;20.4 Shell脚本中的变量

20.1 Shell脚本介绍 1. shell是一种脚本语言 aming_linux blog.lishiming.net 2. 可以使用逻辑判断.循环等语法 3. 可以自定义函数 4. shell是系统命令的集合 5. shell脚本可以实现自动化运维,能大大增加我们的运维效率 20.2 Shell脚本结构和执行 1. 开头(首行)需要加: #!/bin/bash 2. 以#开头的行作为解释说明: 3. 脚本的名字以.sh结尾,用于区分这是一个shell脚本 4. 执行.sh脚本方法有两种:

AD 脚本kixtart运用之四(用户桌面背景)

在http://windyma.blog.51cto.com/661702/1967027文章,已做好用户脚本基础上进行设置 首先设置用户背景桌面是微软件的Bginfo工具,而kixtart只是用来获取用户屏幕的分辨率,根据不同屏幕的分辨率再来调用Bginfo工具来设置不同分辨率的背景图片,以此保证图片不会变形. 第一,在域\\nccn.int\NETLOGON 共享下新建Bginfo目录,把Bginfo.exe工具及不同分辨率的背景图全复制到Bginfo目录下. 第二,用Bginfo.exe工

20.27分发系统介绍;20.28expect脚本远程登录;20.29expect脚本远程执行命令;20.30expect脚本传递参数

20.27 分发系统介绍 shell项目-分发系统-expect 20.28 expect脚本远程登录 1. 安装expect [[email protected] ~]# yum install -y expect 自动远程登录 2. 创建配置1.expect脚本(远程登录) [[email protected] ~]# vim 1.expect 添加内容(自动远程登录hao2机器并执行命令) #! /usr/bin/expect set host "192.168.211.129"

AD 脚本kixtart运用之六(outlook邮件批量生成签名)

基于上一编文章http://windyma.blog.51cto.com/661702/1967071里的设置 我们在Function.kix添加如下内容(备注:此outlook签名function来自网上,经过我比较大的修改): ---------------- Function GenerateOutlookSig($SignatureFileName) $EmailAccountName = @WUSERID ;----获取outlook配置profile名字(如果有多个profile名字

AD 脚本kixtart运用之一 ( 网络盘自动映射)

首先我们在Active Directory 用户和计算机工具中,在用户的配置文件下的登陆脚本里输入如下 然后我们在域共享\\nccn.int\NETLOGON\ 下新建一个NEO.bat的文件内容如下 -------------------------------------------- @echo off cmd /c %logonserver%\netlogon\KIX32.EXE %logonserver%\netlogon\kixtart.kix exit --------------