悠悠楠杉
网站页面
bash
cat > testfile.txt <<'ENDMSG' 第一行内容 第二行内容 ENDMSG
exec 3<> temporary_file.txt
echo "测试写入" >&3
cat <&3
exec 3>&-
场景:监控Nginx访问日志,实时统计异常请求
bash
tail -f /var/log/nginx/access.log | \
awk '$9 >= 400 {print $1,$7,$9}' | \
tee -a error_requests.log | \
while read ip path code; do
echo "[$(date)] 异常访问: IP=$ip 路径=$path 状态码=$code"
# 可扩展添加自动封禁逻辑
done
关键点解析:
1. tail -f
实现实时监控
2. awk
过滤HTTP错误状态码
3. tee
同时记录到文件和屏幕
4. while read
逐行处理
数据流定向不是冷冰冰的语法规则,而是系统交互的哲学。建议初学者:
1. 在/tmp
目录多做实验
2. 养成command > /dev/null 2>&1
的调试习惯
3. 善用man bash
查阅"SHELL GRAMMAR"章节
记住:每个Linux高手都是从无数次重定向错误中成长起来的。当你能流畅运用2>&1 |
这样的组合时,就已经触摸到了系统管理的精髓。