相信在上一篇文章中,大家都会使用command
模块批量在远程主机上执行命令了,这里讲到的shell
模块功能与command
模块使用方法类似,有很多刚开始学习的小伙伴就开始有疑问了,既然都差不多,何必再多学一个呢?在此,我们通过一个列子来说明为什么有了command
模块还需要shell
模块。
栗子1:使用ansible
查看磁盘的根目录大小。
如下:执行df-h正常
[root@myserver ~]# ansible test -m command -a 'df -h' 139.198.39.28 | CHANGED | rc=0 >> Filesystem Size Used Avail Use% Mounted on /dev/vda1 50G 13G 34G 28% / devtmpfs 909M 0 909M 0% /dev tmpfs 920M 0 920M 0% /dev/shm tmpfs 920M 105M 815M 12% /run tmpfs 920M 0 920M 0% /sys/fs/cgroup tmpfs 184M 0 184M 0% /run/user/0
复制
但是,只需要根目录,使用管道进行过滤时
[root@myserver ~]# ansible test -m command -a 'df -h|grep /' 139.198.39.28 | FAILED | rc=1 >> df: invalid option -- '|' Try 'df --help' for more information.non-zero return code
复制
栗子2:查看远程主机/data/mysql/
目录下以mysql
开头的文件
[root@myserver ~]# ansible test -m command -a 'ls -al /data/mysql/mysql*' 139.198.39.28 | FAILED | rc=2 >> ls: cannot access /data/mysql/mysql*: No such file or directorynon-zero return code
复制
如果使用shell模块查看
[root@myserver ~]# ansible test -m shell -a 'ls -al /data/mysql/mysql*' 139.198.39.28 | CHANGED | rc=0 >> -rw-r----- 1 mysql mysql 180 Feb 17 16:23 /data/mysql/mysql-bin.000001 -rw-r----- 1 mysql mysql 499 Feb 17 16:59 /data/mysql/mysql-bin.000002 -rw-r----- 1 mysql mysql 220 Feb 17 17:11 /data/mysql/mysql-bin.000003 -rw-r----- 1 mysql mysql 220 Feb 17 17:13 /data/mysql/mysql-bin.000004 -rw-r----- 1 mysql mysql 220 Feb 17 17:16 /data/mysql/mysql-bin.000005 -rw-r----- 1 mysql mysql 220 Feb 17 21:59 /data/mysql/mysql-bin.000006 -rw-r----- 1 mysql mysql 220 Feb 17 22:00 /data/mysql/mysql-bin.000007 -rw-r----- 1 mysql mysql 220 Feb 17 22:15 /data/mysql/mysql-bin.000008 -rw-r----- 1 mysql mysql 220 Feb 18 12:34 /data/mysql/mysql-bin.000009 -rw-r----- 1 mysql mysql 244 Feb 19 11:40 /data/mysql/mysql-bin.000010 -rw-r----- 1 mysql mysql 1167 Feb 22 17:02 /data/mysql/mysql-bin.000011 -rw-r----- 1 mysql mysql 197 Feb 24 11:32 /data/mysql/mysql-bin.000012 -rw-r----- 1 mysql mysql 348 Feb 24 11:32 /data/mysql/mysql-bin.index -rw-r----- 1 mysql mysql 171 Feb 17 16:53 /data/mysql/mysqld-auto.cnf -rw-r----- 1 mysql mysql 25165824 Feb 24 11:32 /data/mysql/mysql.ibd
复制
完美显示。
使用command
模块不能显示的原因是因为command
模块不支持/,*,&等特殊符号,学完这个模块后,用shell
模块代替command
吧,因为shell
模块比command
更好,当然,需要将shell
模块修改为默认模块,修改/etc/ansible/ansible.cfg
文件的module_name
选项,如:
module_name = shell
复制
测试
[root@myserver ~]# ansible test -a 'df -h |grep /' 139.198.39.28 | CHANGED | rc=0 >> /dev/vda1 50G 13G 34G 28% / devtmpfs 909M 0 909M 0% /dev tmpfs 920M 0 920M 0% /dev/shm tmpfs 920M 105M 815M 12% /run tmpfs 920M 0 920M 0% /sys/fs/cgroup tmpfs 184M 0 184M 0% /run/user/0
复制
此时,shell
已经是默认模块了。赶紧动手试试吧~~~
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
您好,您的文章已入选合格奖,10墨值奖励已经到账请查收!
❤️我们还会实时派发您的流量收益。
3年前

评论
相关阅读
【MySQL 30周年庆】MySQL 8.0 OCP考试限时免费!教你免费领考券
墨天轮小教习
3360次阅读
2025-04-25 18:53:11
2025年4月国产数据库大事记:4个千万级中标项目诞生!2024年达梦净利3.6亿、金仓净利8006.6万……
墨天轮编辑部
2285次阅读
2025-04-30 17:39:54
外国CTO也感兴趣的开源数据库项目——openHalo
小满未满、
2048次阅读
2025-04-21 16:58:09
数据库国产化替代深化:DBA的机遇与挑战
代晓磊
1321次阅读
2025-04-27 16:53:22
2025 DBA 薪资观察:做 DBA 还香吗?
墨天轮编辑部
1167次阅读
2025-04-24 15:53:21
【专家有话说第六期】数据库考证到底有用么?国产时代DBA如何构建真实竞争力
墨天轮编辑部
1125次阅读
2025-05-06 17:50:06
2025年5月中国数据库流行度排行榜:OB一枝独秀破 800,金仓奋起直追跻四强
墨天轮编辑部
1099次阅读
2025-05-13 10:55:54
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
严少安
911次阅读
2025-04-25 15:30:58
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
800次阅读
2025-04-18 14:18:38
2025年4月国产数据库中标情况一览:4个千万元级项目,GaussDB与OceanBase大放异彩!
通讯员
797次阅读
2025-04-30 15:24:06