我有一个包含内容的文件:
aaa.bbb.ccc ddd.eee.fff.ggg h.i.j.k
Run Code Online (Sandbox Code Playgroud)
如果我使用代码:
awk '{sub(/\.$/, ""); print $1}' test.txt
returns aaa.bbb.ccc
awk '{sub(/\.$/, ""); print $3}' test.txt
Returns: h.i.j.k
Run Code Online (Sandbox Code Playgroud)
我理解子函数被用作:sub(regexp,replacement,target)
我不明白这部分 .$/,来自子函数。.$ 是什么?
谢谢
更新
好的,我喜欢你解释事情的方式 - 谢谢!
如果我把它应用到一个真实的例子中,
/usr/bin/host 172.0.0.10
01.0.0.172.in-addr.arpa 域名指针hostname.domain.com。
/usr/bin/host 172.0.0.10 | /bin/awk '{sub(/.$/, ""); 打印 $5}' 给出:hostname.domain.com
/usr/bin/host 172.0.0.10| /bin/awk '{sub(/.$/, ""); 打印 $1}' 给出:10.0.0.172.in-addr.arpa
- 子函数将匹配到行尾,因为有一个“。” - “”在做什么?-我不明白 awk 是如何将东西分成几列的?
在我的剧本中,我有一个任务来更新audit.rules,然后通知处理程序,该处理程序应重新启动已审计的服务。
task:
- name: 6.6.7 - audit rules configuration
template: src=X/ansible/templates/auditd_rules.j2
dest=/etc/audit/rules.d/audit.rules
backup=yes
owner=root group=root mode=0640
notify:
- restart auditd
handlers:
- name: restart auditd
service: name=auditd state=restarted
Run Code Online (Sandbox Code Playgroud)
当剧本运行时,审核规则将更新,并发出重新启动auditd的请求,但这失败,如下所示。
RUNNING HANDLER [restart auditd] ***********************************************
fatal: [ipX-southeast-2.compute.internal]: FAILED! => {"changed": false, "failed": true, "msg": "Unable to restart service auditd: Failed to restart auditd.service: Operation refused, unit auditd.service may be requested by dependency only.\n"}
Run Code Online (Sandbox Code Playgroud)
当我查看审计的单位定义时,可以看到rejectManualStop = yes。这就是为什么我无法重启服务吗?如何克服这一点以采纳新的审核规则?
systemctl cat auditd.service
# /usr/lib/systemd/system/auditd.service
[Unit]
Description=Security Auditing Service
DefaultDependencies=no
After=local-fs.target systemd-tmpfiles-setup.service
Conflicts=shutdown.target
Before=sysinit.target shutdown.target …Run Code Online (Sandbox Code Playgroud) 在我的管理主机上,我安装了 ansible 2.2.0.0 并且我正在尝试连接到我的客户端。
客户端是一个 EC2 实例,只接受 SSH 密钥登录。我有一个简单的剧本,正在客户端上创建一个临时文件
我看到多次要求我输入私钥密码的行为,想知道为什么?我在以前版本的 Ansible 上没有看到这个行为者。
ansible-playbook -i inventory soe-yml --verbose --private-key <keyfile> -vvv
ansible-playbook -i inventory soe-yml --verbose --private-key <keyfile>
Using /home/X/ansible/ansible.cfg as config file
PLAY [<instance-dns>] **************************
TASK [setup] *******************************************************************
Enter passphrase for key 'X':
[WARNING]: sftp transfer mechanism failed on [<instance-dns>]. Use ANSIBLE_DEBUG=1 to see detailed information
Enter passphrase for key 'X':
Enter passphrase for key 'X':
Enter passphrase for key 'X':
ok: [<instance-dns>]
TASK [Create test file] ********************************************************
Enter passphrase …Run Code Online (Sandbox Code Playgroud)