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++开发者的得力伙伴。