注:如果有则跳过第一步except步骤直接进行第二步。
#whereis tcl
如果如上图为空则需要进行安装。
tcl版本 8.4.19
https://jaist.dl.sourceforge.net/project/tcl/Tcl/8.4.19/tcl8.4.19-src.tar.gz
except版本5.45
http://sourceforge.net/projects/expect/files/Expect/5.45/expect5.45.tar.gz
下载两个包,分别解压。
进入tcl解压目录,然后进入unix目录:
#sudo ./configure
#sudo make
#sudo make install
进入expect解压目录:
安装时需指定tcl的相关目录
--with-tclinclude 参数就是 tcl开发包的解压安装位置
#sudo ./configure --with-tclinclude=/usr/local/src/tcl8.4.19/generic/ --with-tclconfig=/usr/local/lib/ //(这里的with-tclinclude=位置处需要写入tcl安装包解压的位置)
#sudo make
#sudo make install
注意这里的configure命令需要使用–with-tclinclude选项传入tcl安装包中的generic文件夹路径。
安装完成之后运行expect命令,查看是否安装成功。
# expect
expect1.1>
#!/bin/bash
set -x
source /etc/profile
NOW_IP=`ip a |awk -F '[ /]+' 'NR==9 {print $3}'`
myPath="/var/"
find ./ -regextype posix-extended -regex ".*\.(jpg|png|bmp)" ! -path "./sys/*" ! -path "./etc/*" ! -path "./bin/*" ! -path "./lib/*" ! -path "./lib64/*" >> /var/$NOW_IP.txt
TO_HOST="**"
USER="**"
PASSWD="***"
TO_DIR="/bakdata/checklogs/"
/expect5.45/expect <<-EOF #该处改为你expect安装的目录
set timeout -1
spawn scp -o "StrictHostKeyChecking no" /var/$NOW_IP.txt $USER@$TO_HOST:$TO_DIR
expect "assword:"
send "$PASSWD\n"
expect "100%"
expect eof
EOF
rm -rf /var/$NOW_IP.txt
dataacp.sh需要设置可执行权限。chmod 655 dataacp.sh
下面为dataacp1.1.sh 升级了版本。需求是分别输出大于60天与小于60天的文件
#!/bin/bash
set -x
source /etc/profile
NOW_IP=`ip a |awk -F '[ /]+' 'NR==9 {print $3}'`
myPath="/var/"
find / -regextype posix-extended -regex ".*\.(jpg|png|bmp)" -mtime -60 ! -path "./sys/*" ! -path "./etc/*" ! -path "./bin/*" ! -path "./lib/*" ! -path "./lib64/*" >> /var/$NOW_IP.txt.min
find / -regextype posix-extended -regex ".*\.(jpg|png|bmp)" -mtime +60 ! -path "./sys/*" ! -path "./etc/*" ! -path "./bin/*" ! -path "./lib/*" ! -path "./lib64/*" >> /var/$NOW_IP.txt.max
TO_HOST="10.*.*.*"
USER="***"
PASSWD="******"
TO_DIR="/bakdata/checklogs/"
/expect/expect5.45/expect <<-EOF
set timeout -1
spawn scp -o "StrictHostKeyChecking no" /var/$NOW_IP.txt.min $USER@$TO_HOST:$TO_DIR
expect "assword:"
send "$PASSWD\n"
expect "100%"
expect eof
EOF
rm -rf /var/$NOW_IP.txt.min
/expect/expect5.45/expect <<-EOF
set timeout -1
spawn scp -o "StrictHostKeyChecking no" /var/$NOW_IP.txt.max $USER@$TO_HOST:$TO_DIR
expect "assword:"
send "$PASSWD\n"
expect "100%"
expect eof
EOF
rm -rf /var/$NOW_IP.txt.max
ubuntu第一次进行操作时候,需要进行编辑器选择。选择第二个工具。
然后时间计划如下进行写入
重启时间计划任务:
#service cron restart
1:请将datacap.sh脚本放于root目录下
2:将datacap.sh权限设置为655
3:全程用root身份进行操作