一些脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一些脚本相关的知识,希望对你有一定的参考价值。

功能:目录下面有 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
}

  

以上是关于一些脚本的主要内容,如果未能解决你的问题,请参考以下文章

代码片段:Shell脚本实现重复执行和多进程

html 将以编程方式附加外部脚本文件的javascript代码片段,并按顺序排列。用于响应式网站,其中ma

;~ 小部分AutoHotkey源代码片段测试模板2019年10月9日.ahk

如何在 Toad for Oracle 中使用自定义代码片段?

python [代码片段]一些有趣的代码#sort

在加载当前脚本时执行脚本