linux编程实践经验sshpass、md5sum、ssh

2025-04-19 05:35:43

1、首先介绍一下使用md5sum命令生成md5文件,这个命令是linux系统自带的命令,会根据文件内容生成对应的md5文件。原理就不解释了,大家自己百度或者google一下就知道。这里给大家分享的是怎样在java程序中正确使用该命令呢。我第一次是这样做的:用Runtime.getRuntime().exec("md5sum test.txt > test.txt.md5");但是却没有生成我要的test.txt.md5文件。原因是用上面的方式md5sum后面的“test.txt > test.txt.md5”被当做一个字符数据传输给了md5sum文件,因此导致生成md5文件失败。大家一定很关心怎样能够通过java成功调用md5sum命令生成自己要的md5文件。下面就来看看吧。

2、那就是把上面的命令以字符数组的形式传递,同时显示的用sh去执行这个命令,具体用法如下:Runtime.getRuntime().exec(newString[]{"sh","-c","md5sum test.txt > test.txt.md5"});注意,sh和-c是必须有的,告诉程序以sh方式执行该命令。这里还有一点和大家分享,就是当大文件要生成对应的md5文件时,要sleep一下主线程,不然直接调用结果的md5文件可能获取不到,因为大数据文件md5sum命令执行需要时间,所以需要sleep操作。

linux编程实践经验sshpass、md5sum、ssh

3、下面说说ssh吧,做开发的应该都用过。大家在做日志分析的时候是否碰到过要从其他的服务器拉取日志文件来做访问统计呢,如果有这个需要,那就有必要了解下了。同一个服务架设在多台服务器上怎样进行日志分析?一般是采用把相同服务在多台机器产生的log日志文件拉到一台机器上进行统一处理。那linux机器之间怎么做呢?一种是建立机器之间的信任关系,这时候不需要通过ssh登陆来获取文件,但这样操作风险性太高,不安全,所以op一般是不会统一这样做的。那还有没有其他方式呢?当然有啊,方法总比困难多啊。

4、要不通过ssh直接登陆怎样获取呢?那茧盯璜阝就是通过一个叫sshpass的工具软件,该软件的具体使用大家自己上网上百度或者google吧。我在这里不详细解释,只给大家演示一下我是怎样通过sshpass来获取我要获取的机器上的日志文件的。其实很简单,就是下面的命令:通过sshpass输入你的密码 然后通过scp就可以从你需要的机器上拉取日志文件了!注意这种方式最大的好处是可以写到shell里面,不需要通过终端来每一次交互都输入密码了!就是说你的shell中直接通过下面的命令就能轻松搞定拉取日志文件的问题了,是不是很简单,自己实际练习一下吧。有问题或者不同的欢迎留言交流sshpass -p my_password scp -r $2:$SOURCE_PATH/$1.log.$date $LOCAL_LOG_PATH/$1.log.$3.$2

linux编程实践经验sshpass、md5sum、ssh
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
相关推荐
  • 阅读量:69
  • 阅读量:29
  • 阅读量:91
  • 阅读量:92
  • 阅读量:35
  • 猜你喜欢