Yuliang-Lee
5/23/2019 - 12:30 PM

linux 命令

# 批量删除进程, 把 process_info 换成进程相关信息
ps -ef | grep  process_info |grep -v grep | awk '{print $2}' | xargs kill -9

# 文件夹下文件非常多,没法一次 rm 时使用
ls -U|grep txt|while read name
do
    rm $name &
done

# 删除 N 天前文件
语句写法:find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \;
 例1: 将/usr/local/backups目录下所有10天前带"."的文件删除
  find /usr/local/backups -mtime +10 -name "*.*" -exec rm -rf {} \;
  
  find:linux的查找命令,用户查找指定条件的文件
  /usr/local/backups:想要进行清理的任意目录
  -mtime:标准语句写法
  +10:查找10天前的文件,这里用数字代表天数,+30表示查找30天前的文件
  "*.*":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件,这个可以灵活运用,举一反三
  -exec:固定写法
  rm -rf:强制删除文件,包括目录
  {} \; :固定写法,一对大括号+空格+\
# 删除 N 天前文件

# 查看当前目录文件大小
du -h --max-depth=1 ./
# 查看网络包收发情况
sar -n DEV 1

# -n表示不解析名字,-p表示显示连接所属进程
netstat -n -p | grep SYN_REC

# 丢掉 tcp syn 包
iptables -I INPUT -s 192.168.0.2 -p tcp -j REJECT


# 限制syn并发数为每秒1次
$ iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT

# 限制单个IP在60秒新建立的连接数为10
$ iptables -I INPUT -p tcp --dport 80 --syn -m recent --name SYN_FLOOD --update --seconds 60 --hitcount 10 -j REJECT

# 查看、修改半开状态连接数
sysctl net.ipv4.tcp_max_syn_backlog
sysctl -w net.ipv4.tcp_max_syn_backlog=1024

# 查看系统本地可用端口极限值
sysctl net.ipv4.ip_local_port_range

# 查看系统同时保持 TIME_WAIT socket 的最大数量
sysctl net.ipv4.tcp_max_tw_buckets

# 查看 tcp time_out 保持时间数
cat /proc/sys/net/ipv4/tcp_fin_timeout

TCP SYN Cookies 也是一种专门防御 SYN Flood 攻击的方法。SYN Cookies 基于连接信息(包括源地址、源端口、目的地址、目的端口等)以及一个加密种子(如系统启动时间),计算出一个哈希值(SHA1),这个哈希值称为 cookie。然后,这个 cookie 就被用作序列号,来应答 SYN+ACK 包,并释放连接状态。
当客户端发送完三次握手的最后一次 ACK 后,服务器就会再次计算这个哈希值,确认是上次返回的 SYN+ACK 的返回包,才会进入 TCP 的连接状态。


# 主机终端中查询内核配置-连接跟踪数
$ sysctl net.netfilter.nf_conntrack_max
net.netfilter.nf_conntrack_max = 262144
$ sysctl net.netfilter.nf_conntrack_count
net.netfilter.nf_conntrack_count = 182

# 通过这个命令查看 iptables 的规则过滤统计信息
$ iptables -t filter -nvL
# 查看 oom 的进程
grep "Out of memory" /var/log/messages

# 查看系统进程被杀
egrep -i -r 'killed process' /var/log

dmesg
# 查看进程精确启动时间
ps -eo pid,lstart,etime,cmd | grep nginx

# 查看进程占用内存
ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' |  sort -nrk5
# 挂载外部硬盘到本地指定目录
# -t xx  根据硬盘类型设置不同的值
sudo mount -t nfs -o vers=3,nolock,noresvport ip:remote_dir /loccal_dir/
mount -t nfs -o vers=3,nolock,noresvport :/6y3q7men/ /data/remote_cfs