centos安装expect expect的用法与搭配

大家好,今天小编来为大家解答以下的问题,关于centos安装expect,expect的用法与搭配这个很多人还不知道,现在让我们一起来看看吧!

【shell】CentOS7.x上sshpass的安装使用

OpenSSH自带的 ssh客户端程序(也就是 ssh命令)默认不允许你以非交互的方式传递密码。

很多时候我们在确定安全的情况下,对ssh的交互登录"深恶痛绝",所以就需要进行免密登录。

ssh登陆不能在命令行中指定密码,sshpass的出现,解决了这一问题。

sshpass用于非交互SSH的密码验证,一般用在sh脚本中,无须再次输入密码(本机known_hosts文件中有的主机才能生效)。它允许你用-p参数指定明文密码,然后直接登录远程服务器,它支持密码从命令行、文件、环境变量中读取。

ssh命令,没有指定密码的参数.以至于在脚本中使用ssh命令的时候,必须手动输入密码,才能继续执行.这样使得脚本的自动化执行变得很差,尤其当ssh对应的机器数很多的时候,会令人抓狂.使用非交互式样有两种方式:一种借助expect脚本,一种借助sshpass来实现。

# wget 

# tar  zxf sshpass-1.06.tar.gz

# cd sshpass-1.06

#./configure --prefix=/usr/local/

# make&& make install

# yum-y install sshpass

# yum info sshpass

注:如果用rpm的方式安装ansible,sshpass是作为依赖安装的。

# sshpass-h

# sshpass-p"123456" ssh  -o'StrictHostKeyChecking=no'  root@192.168.1.100

# sshpass-p"123456" ssh -o'StrictHostKeyChecking=no'  root@192.168.1.100  -v

注:第一次登陆务必加上  -o'StrictHostKeyChecking=no' 选项,或者保险起见,每次加上

non-interactive ssh password auth

sshpass用法举例

Linux ssh命令详解

sshpass的使用方法

用expect做服务器的批量互信

Linux 生成随机密码/修改密码

Linux生成随机密码方式:

strings/dev/urandom| grep-o‘[[:alnum:]]’| head-n 30| tr-d‘n’; echo

Linux修改密码方法:

passwd root

然后输入两次新密码

root可以替换成需要修改的用户

除了上面的随机密码生成我们还有其它办法

1.用mkpasswd命令:

使用mkpasswd命令,需要事先安装expect模块,以CentOS为例:

yum-y install expect

安装好后,直接运行mkpasswd,就能生成随机密码了。并且命令还有参数,比如设置生成的随机密码的最小长度,等等,看看help就知道了。

2.用passwdgen命令:

和mkpasswd大致一致,需事先安装passwdgen模块:

yum-y install passwdgen

安装好后,直接运行passwdgen,即可得到随机密码,同样passwdgen命令也有参数,可以参考help。

补充一些生成随机密码命令

以下是十种生成随机密码的实例

1.SHA+date+base64,密码长度32

date+%s| sha256sum| base64| head-c 32; echo

2.使用urandom,过滤掉其他符号,只留字母和数字,密码长度32

/dev/urandom tr-dc _A-Z-a-z-0-9| head-c${1:-32};echo;

3.使用openssl的随机函数

openssl rand-base64 32

4.urandom的另一个用法,urandom+tr

tr-cd'[:alnum:]'/dev/urandom| fold-w30| head-n1

5.使用urandom加字符函数

strings/dev/urandom| grep-o':alnum:'| head-n 30| tr-d'n'; echo

6.urandom最简单的使用

/dev/urandom tr-dc _A-Z-a-z-0-9| head-c6

7.urandom的另一个用法,urandom+dd

dd if=/dev/urandom bs=1 count=32 2/dev/null| base64-w 0| rev| cut-b 2-| rev

8.如果你经常使用单手输入密码,那么可以参考以下方法生成"左手密码"

/dev/urandom tr-dc'12345!@#$%qwertQWERTasdfgASDFGzxcvbZXCVB'| head-c8; echo""

9.使用randpw加urandom

randpw(){/dev/urandom tr-dc _A-Z-a-z-0-9| head-c${1:-16};echo;}

10.最后来个最简洁的

date| md5sum

技术贴 | 一文掌握 Google Test 框架

探索Google Test的强大功能,让单元测试变得更简单

Google Test,这款由Google精心打造的C++单元测试框架,是软件开发中的得力助手。它支持TDD和BDD方法论,凭借其卓越的特性,为测试工作带来高效与便捷。

直观设计:简洁的语法和API,让你轻松验证测试结果,无需繁复操作。例如,使用EXPECT_EQ检查计算结果是否符合预期。

强大断言:提供多样化的断言选项,包括比较、检查异常,确保代码质量。

灵活组织:测试套件和夹具功能,帮助你有序管理大量测试用例,确保每个测试独立或共享数据时的高效执行。

跨平台支持:支持C++11及以上标准,无缝集成到各种编译器,Bazel/CMake构建让你无需担心平台差异。

详尽报告:显示详尽的测试结果,帮助快速定位问题,提升调试效率。

集成Google Test的过程直观易行:

Ubuntu/CentOS上,轻松通过apt-get或yum安装gtest-dev。

在CMake项目中,只需在CMakeLists.txt中添加测试配置。

代码示例展示测试用例的编写方式,如测试加法函数的TEST(TEST_ADD, UNSIGNED_INT_VALUE)。

编译并运行,利用CMake构建工具执行测试。

深入了解Google Test的关键组件:

TEST宏:独立测试(TEST)和类测试(TEST_F)提供不同场景下的灵活性,例如StudentTest中的SET_AGE_TEST和SET_SCORE_TEST。

参数化测试:通过TEST_P和INSTANTIATE_TEST_SUITE_P,适应不同数据集的测试需求。

测试过程中的断言选项丰富多样,如ASSERT_*和EXPECT_*,涵盖各种数据类型和异常处理。

同时,Google Test还提供了事件机制,允许你自定义测试环境和生命周期管理,如SetUp和TearDown方法。

命令行选项是调试和优化测试的得力工具,如gtest_list_tests用于查看测试列表,gtest_repeat控制重复执行次数,gtest_output则用于生成详细的测试报告。

Google Test以其强大功能和易用性,帮助开发人员确保代码质量,提高开发效率。无论是独立测试还是集成测试,它都是C++开发者的得力伙伴。

阅读剩余
THE END