免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1582 | 回复: 3
打印 上一主题 下一主题

[系统管理] Shell脚本远程批量建users时使用awk命令出现的问题 [复制链接]

论坛徽章:
5
程序设计版块每日发帖之星
日期:2016-04-15 06:20:00每日论坛发贴之星
日期:2016-04-15 06:20:0015-16赛季CBA联赛之八一
日期:2016-07-08 09:20:28操作系统版块每日发帖之星
日期:2016-08-03 06:20:002016科比退役纪念章
日期:2016-10-30 13:59:12
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-04-02 13:43 |只看该作者 |倒序浏览
我引用sshpass工具远程批量到20台Linux服务器上创建用户时使用awk命令时出现了问题。
首先sshpass的工具已经安装到本地Linux服务器上,脚本如下:
#!/bin/bash
for i in $(cat host)
do
sshpass -p 'House' ssh root@$i  "cd /tmp
echo 'james:601:601::/home/james:/bin/bash
jack:508:508::/home/jack:/bin/bash
john:561:561::/home/john:/bin/bash
kobe:564:564::/home/kobe:/bin/bash
messi:765:765::/home/messi:/bin/bash' > userfile.txt

newusers userfile.txt
awk -F '[:]' '{print $1}' userfile.txt > userpwdfile.txt
sed -i 's/$/&:123456/g' userpwdfile.txt
pwunconv
chpasswd < userpwdfile.txt
pwconv"
done

本机Linux服务器的IP为192.168.0.2
上面脚本里面关联的host文件的内容为:
192.168.0.3
192.168.0.4
192.168.0.5
........
192.168.0.22

请注意脚本中红色字体的这一部分,由于使用了awk命令,我是希望红色部分的命令执行后userpwdfile.txt的内容应为(即只取出userfile.txt的第一列):
james
jack
john
kobe
messi

但是userpwdfile.txt的内容却为:
james:601:601::/home/james:/bin/bash
jack:508:508::/home/jack:/bin/bash
john:561:561::/home/john:/bin/bash
kobe:564:564::/home/kobe:/bin/bash
messi:765:765::/home/messi:/bin/bash

就是说awk的命令没有起到效果,但是我把红色命令的echo这一行,以及awk这一行放到Terminal命令行中执行,userpwdfile.txt的内容是:
james
jack
john
kobe
messi

所以我想问各位大侠,这个脚本里面是awk与其它部分有冲突还是有其它原因?导致awk命令使用后没有效果

还请问一下我这个脚本可以做到更优化吗?像echo这个命令的话能否用其它的命令来代替?

论坛徽章:
5
程序设计版块每日发帖之星
日期:2016-04-15 06:20:00每日论坛发贴之星
日期:2016-04-15 06:20:0015-16赛季CBA联赛之八一
日期:2016-07-08 09:20:28操作系统版块每日发帖之星
日期:2016-08-03 06:20:002016科比退役纪念章
日期:2016-10-30 13:59:12
2 [报告]
发表于 2016-04-02 13:56 |只看该作者
发贴的时候上面文本里面生气的表情其实是 : x  

论坛徽章:
28
2015年迎新春徽章
日期:2015-03-04 10:16:53午马
日期:2015-03-20 17:11:07亥猪
日期:2015-03-20 17:11:23戌狗
日期:2015-03-20 17:11:33酉鸡
日期:2015-03-20 17:11:47申猴
日期:2015-03-20 17:11:58未羊
日期:2015-03-20 17:12:10子鼠
日期:2015-03-20 17:12:23丑牛
日期:2015-03-20 17:12:40卯兔
日期:2015-03-20 17:12:51辰龙
日期:2015-03-20 17:13:00巳蛇
日期:2015-03-20 17:13:12
3 [报告]
发表于 2016-04-02 14:57 |只看该作者
  1. $1 -> \$1
复制代码

论坛徽章:
5
程序设计版块每日发帖之星
日期:2016-04-15 06:20:00每日论坛发贴之星
日期:2016-04-15 06:20:0015-16赛季CBA联赛之八一
日期:2016-07-08 09:20:28操作系统版块每日发帖之星
日期:2016-08-03 06:20:002016科比退役纪念章
日期:2016-10-30 13:59:12
4 [报告]
发表于 2016-04-02 16:56 |只看该作者
回复 3# 我是一隻羊

非常感谢“我是一只羊”,问题解决了,但是我想问一下,这里为什么要在$1前加上 \  来做转义呢?
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP