linux 查看当前目录下每个子目录的文件数量
find . -maxdepth 1 -type d | while read dir; do count=$(find "$dir" -type f | wc -l); echo "$dir : $count"; done
-maxdepth 1 过滤目录的深度
-type d 文件类型为目录
-type f 文件类型为文件
查看最常用的命令和使用次数
history | awk '{if ($2 == "sudo") a[$3]++; else a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head;
逆序查看文件
awk '{a[i++]=$0} END {for (j=i-1; j>=0;) print a[j--] }' filename;
统计一下服务器下面所有的 jpg 的文件的大小
find / -name *.jpg -exec wc -c {} \;|awk '{print $1}'|awk '{a+=$1}END{print a}'
查看访问前十个ip地址
awk '{print $1}' |sort|uniq -c|sort -nr |head -10 access_log
访问次数最多的10个文件或页面
cat log_file|awk '{print $11}'|sort|uniq -c|sort -nr | head -10
cat log_file|awk '{print $11}'|sort|uniq -c|sort -nr|head -20
awk '{print $1}' log_file |sort -n -r |uniq -c | sort -n -r | head -20
查看某一个IP访问了哪些页面:
grep ^111.111.111.111 log_file| awk '{print $1,$7}'
Nginx 访问日志分析脚本
#!/bin/bash
\# 日志格式: $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"
LOG_FILE=$1
echo "统计访问最多的10个IP"
awk '{a[$1]++}END{print "UV:",length(a);for(v in a)print v,a[v]}' $LOG_FILE |sort -k2 -nr |head -10
echo "----------------------"
echo "统计时间段访问最多的IP"
awk '$4>="[01/Dec/2018:13:20:25" && $4<="[27/Nov/2018:16:20:49"{a[$1]++}END{for(v in a)print v,a[v]}' $LOG_FILE |sort -k2 -nr|head -10
echo "----------------------"
echo "统计访问最多的10个页面"
awk '{a[$7]++}END{print "PV:",length(a);for(v in a){if(a[v]>10)print v,a[v]}}' $LOG_FILE |sort -k2 -nr
echo "----------------------"
echo "统计访问页面状态码数量"
awk '{a[$7" "$9]++}END{for(v in a){if(a[v]>5)print v,a[v]}}'
服务器系统配置初始化脚本
#/bin/bash \# 设置时区并同步时间 ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime if ! crontab -l |grep ntpdate &>/dev/null ; then (echo "* 1 * * * ntpdate time.windows.com >/dev/null 2>&1";crontab -l) |crontab fi \# 禁用selinux sed -i '/SELINUX/{s/permissive/disabled/}' /etc/selinux/config \# 关闭防火墙 if egrep "7.[0-9]" /etc/redhat-release &>/dev/null; then systemctl stop firewalld systemctl disable firewalld elif egrep "6.[0-9]" /etc/redhat-release &>/dev/null; then service iptables stop chkconfig iptables off fi \# 历史命令显示操作时间 if ! grep HISTTIMEFORMAT /etc/bashrc; then echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/bashrc fi \# SSH超时时间 if ! grep "TMOUT=600" /etc/profile &>/dev/null; then echo "export TMOUT=600" >> /etc/profile fi \# 禁止root远程登录 sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config \# 禁止定时任务向发送邮件 sed -i 's/^MAILTO=root/MAILTO=""/' /etc/crontab \# 设置最大打开文件数 if ! grep "* soft nofile 65535" /etc/security/limits.conf &>/dev/null; then cat >> /etc/security/limits.conf << EOF \* soft nofile 65535 \* hard nofile 65535 EOF fi \# 系统内核优化 cat >> /etc/sysctl.conf << EOF net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_tw_buckets = 20480 net.ipv4.tcp_max_syn_backlog = 20480 net.core.netdev_max_backlog = 262144 net.ipv4.tcp_fin_timeout = 20 EOF \# 减少SWAP使用 echo "0" > /proc/sys/vm/swappiness \# 安装系统性能分析工具及其他 yum install gcc make autoconf vim sysstat net-tools iostat if
xargs 用法
使用该方法,您可以快速重命名目录中的文件。 eg:$ ls | xargs -t -i mv {} {}.bak -i 选项告诉 xargs 用每项的名称替换 {}。 eg:统计一个源代码目录中所有php文件的行数: find . -type f -name "*.php" -print0 | xargs -0 wc -l eg:查找所有的jpg 文件,并且压缩它们: find . -type f -name "*.jpg" -print | xargs tar -czvf images.tar.gz
oracle 执行计划
在你要执⾏的SQL语句前加 explain plan for ,此时将⽣成的执⾏计划存储到计划表中,语句如下:explain plan for SQL语句 在计划表中查询刚刚⽣成的执⾏计划,语句如下: select * from table(dbms_xplan.display);
md5sum.该命令将生成文件的 32 位 MD5 散列值:
md5sum file1 md5sum 是一个非常强大的用于安全性实施的命令。您所管理的某些配置文件(如 listener.ora、tnsnames.ora 和 init.ora)对于成功的 Oracle 基础架构非常重要,任何修改都可能会导致停机。这些通常是更改控制过程的一部分。不要相信别人所说的这些文件并未更改,使用 MD5 校验和执行该命令。创建一个校验和文件,并在每次执行计划的更改时重新创建该文件。作为合规性的一部分,使用 md5sum 命令检查该文件。如果某个人无意中更新了这些重要文件中的一个,您就会立即捕获更改。
全系统中搜索,包含某数据的文件名
[root@localhost tmp]# find / -type f -name '*.txt' | xargs -i grep -l 'xiake' {}` `/var/log/nginx/mima.txt`标签:sort,文件,常用,echo,实用,etc,awk,Linux,print From: https://www.cnblogs.com/xuxuxu-2022/p/17250210.html