Linux+Shell获取及拷贝最新数据到远程设备
2016-09-30 14:14
232 查看
Linux+Shell获取及拷贝最新数据到远程设备
我们远程一般拷贝数据都是创建了共享秘钥,这样拷贝的话就不用输入密码了,具体可以参考我前面的文章”Linux 下实现SSH互信--http://gaowenlong.blog.51cto.com/451336/1856951”;
我们将通过脚本获取LOCALBAKDIR目录下的文件的最后一下修改时间,将最新的修改时间的问题远程拷贝到RMT_HOST
我们远程一般拷贝数据都是创建了共享秘钥,这样拷贝的话就不用输入密码了,具体可以参考我前面的文章”Linux 下实现SSH互信--http://gaowenlong.blog.51cto.com/451336/1856951”;
我们将通过脚本获取LOCALBAKDIR目录下的文件的最后一下修改时间,将最新的修改时间的问题远程拷贝到RMT_HOST
#!/bin/bash LOCALBAKDIR=/OAFS/WEAVER_BACKUP RMTRESTDIR=/OAFS RMT_HOST=192.168.6.38 RMT_USER=root RMT_CMD="$(which ssh) $RMT_USER@$RMT_HOST" #function is_alive 判断远程计算机是否通信正常 function is_alive() { `which ping` -c 4 $RMT_HOST >/dev/null 2>&1 if [ "$?" -ne 0 ]; then echo 2 else echo 0 fi } function mktmpdir() { $RMT_CMD mkdir -p /tmp/OAFS } function rmvtmpdir() { $RMT_CMD rm -rf /tmp/OAFS/* } function get_last_targz() { echo $(ls -lt $LOCALBAKDIR | awk {'print $9'} |grep -v ^$ |head -n 1) } function copy() { yum install -y openssh-clients >/dev/null 2>&1 $RMT_CMD yum install -y openssh-clients >/dev/null 2>&1 scp -q $LOCALBAKDIR/$(get_last_targz) $RMT_USER@$RMT_HOST:/tmp/OAFS/ } if [ "$(is_alive)" -eq 0 ]; then mktmpdir copy rmvtmpdir else echo "$RMT_HOST can not be accessed via port 22, please check" fi最后我们通过脚本获取LOCALBAKDIR目录下的文件名来判断是否为最新的文件(文件名是以日期格式命名),将最新的修改时间的问题远程拷贝到RMT_HOST
#!/bin/bash LOCALBAKDIR=/OAFS/WEAVER_BACKUP RMTRESTDIR=/OAFS RMT_HOST=192.168.6.38 RMT_USER=root RMT_CMD="$(which ssh) $RMT_USER@$RMT_HOST" function is_alive() { `which ping` -c 4 $RMT_HOST >/dev/null 2>&1 if [ "$?" -ne 0 ]; then echo 2 else echo 0 fi } function mktmpdir() { $RMT_CMD mkdir -p /tmp/OAFS } function rmvtmpdir() { $RMT_CMD rm -rf /tmp/OAFS/* } function get_last_targz() { echo $(ls $LOCALBAKDIR | awk '{match($0,/.{4}-.{2}-.{2}/,a);b[a[0]]=$0;y=a[0]>y?a[0]:y}END{print b[y]}') } function copy() { yum install -y openssh-clients >/dev/null 2>&1 $RMT_CMD yum install -y openssh-clients >/dev/null 2>&1 scp -q $LOCALBAKDIR/$(get_last_targz) $RMT_USER@$RMT_HOST:/tmp/OAFS/ } if [ "$(is_alive)" -eq 0 ]; then mktmpdir copy rmvtmpdir else echo "$RMT_HOST can not be accessed via port 22, please check" fi
相关文章推荐
- Linux+Shell获取及拷贝最新备份数据
- Linux中Curl命令couldn't connect to host解决方案 php操作Curl(http,https)无法获取远程数据解决方案
- Linux远程拷贝&远程执行命令shell脚本
- Linux通过Shell对文件自动进行远程拷贝备份
- linux通过awk命令,查询日志,分析数据,获取平均时间shell脚本
- linux设备上的Onvif 实现12: 获取媒体配置数据
- 两台Linux远程拷贝数据--SCP
- USB驱动开发之远程访问USB设备扩展(linux平台USB设备数据采集端)
- Linux 批量拷贝数据脚本 + ssh 无密码登陆远程LINUX主机
- 使用scp获取远程linux服务器上的文件 linux远程拷贝文件
- linux设备上的Onvif 实现13: 获取子通道的配置数据范围
- 在Linux下远程使用scp拷贝文件
- ASP小偷(远程数据获取)程序入门教程
- 如何利用网络附加存储设备(NAS)构建数据备份(本地及远程数据备份)、数据容灾解决方案
- 利用WebClient获取远程数据(仅做备份)
- 异步获取远程二进制数据
- 使用链接服务器获取远程服务器数据
- ASP小偷(远程数据获取)程序入门教程
- (ORACLE)ROWNUM方式与MAX方式在获取最新数据时的效率比较
- ASP小偷(远程数据获取)程序入门教程