我可以使用日志分析器,但通常我需要解析最近的网络日志以查看当前发生的情况。
我有时会做一些事情,比如找出请求某个文件的前 10 个 ip
cat foo.log | grep request_to_file_foo | awk '{print $1}' | sort -n | uniq -c | sort -rn | head
Run Code Online (Sandbox Code Playgroud)
你的工具箱里有什么?
命令行和脚本是危险的。使用 rm -rf 犯一个小错误,你就会陷入伤害的世界。在运行导入脚本时将数据库名称中的 prod 与 stage 混淆,并且您已绑定(如果它们在同一台服务器上,这并不好,但会发生)。同样为太晚注意到您 sshed 所在的服务器名称不是您在玩弄一些命令后认为的那样。你必须尊重Hole Hawg。
在运行有风险的命令之前,我有一些小习惯——比如对我所在的服务器进行三重检查。这是一篇关于 rm security的有趣文章。
什么小仪式、工具和技巧可以让你在命令行上保持安全?我的意思是客观的东西,比如“首先运行 ls foo*,查看它的输出,然后用 rm -rf 替换 ls 以避免运行 rm -rf foo * 或类似的东西”,而不是“确保你知道什么是命令会做”。
这是一个有点尴尬的问题,但我不得不承认,在我职业生涯的后期,我仍然对 mv 命令有疑问。
我经常遇到这个问题:我需要将所有文件递归地向上移动一层。假设我有文件夹 foo,里面有一个文件夹 bar。Bar 有一堆文件和文件夹,包括点文件和文件夹。如何将 bar 中的所有内容移动到 foo 级别?
如果 foo 为空,我只需将 bar 移到上一层,删除 foo 并将 bar 重命名为 foo。部分问题是我无法弄清楚“包括点在内的一切”的 mv 通配符是什么。这个问题的一部分是 - 是否有对 cp 和 mv 命令在某处使用的通配符的深入讨论(谷歌搜索这只会带来非常基本的教程)。
你如何杀死大量的 MySQL 查询?这是一个很好的方法:
mysql> SELECT concat('KILL ',id,';') FROM information_schema.processlist WHERE user='root' INTO OUTFILE '/tmp/a.txt';
mysql> source /tmp/a.txt;
Run Code Online (Sandbox Code Playgroud)
除了在 MySQL 管理员 GUI 中单击它们致死之外还有其他的吗?
您如何解决生产中的 Apache 重定向问题?我知道某处有一个日志记录功能,可以让您记录发生的所有重定向......
当显示完整的进程列表时;返回许多带有 0 时间列的“睡眠”状态查询,这可能是什么原因造成的?MySQL实际上如何决定连接是否需要休眠?与 mysql 对话的应用程序没有使用持久连接。