将Awk命令转换为脚本的麻烦

时间:2012-06-26 10:39:00

标签: bash awk

我在http://centoshelp.org/security/securing-sshd/发现了一些有用的命令 即,解析/ var / log / secure以检查攻击帐户/攻击IP的两个
我真的很想将它们转换成一个更简单的命令,我可以用su来运行,而不是试图记住它们 我已经尝试过shell脚本以及直接awk脚本,但我总是会遇到各种错误,通常与单引号有关,有时候是语法(取决于我使用或省略的双引号和单引号的组合)

awk 'gsub(".*sshd.*Failed password for (invalid user )?", "") {print $1}' /var/log/secure* | sort | uniq -c | sort -rn | head -5

awk 'gsub(".*sshd.*Failed password for (invalid user )?", "") {print $3}' /var/log/secure* | sort | uniq -c | sort -rn | head -5

我似乎无法正确组合,所以任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:1)

当无法直接进一步简化时,将某些内容转换为简单命令的最佳方法是创建脚本或函数。将前者放在PATH或后者的目录中,放在~/bin/functions中的~/.bashrc文件中。

有时候这是不可能或不实际的,但像AutoKey这样的东西可以从你指定的快捷方式输入它,而不需要记住完整的命令。