linux命令运维记录

批量杀掉筛选进程

1
ps -ef | grep test | grep -v grep | awk '{print $2}' | xargs kill -9 
1
ps -ef | grep test | grep -v grep | cut -c 9-15 | xargs kill -9 

寻找指定后缀文件

1
2
#排除.git目录并寻找指定后缀文件
find . -path ./.git -prune -o -name "*.php" -print > ~/list.txt
1
2
#压缩找到的文件
tar zcvf - `find . -path ./.git -prune -o -name "*.php"` > ~/list.tar.gz

导入压缩的数据库备份

1
gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename

文件夹inode数量

1
find /data/www/ -xdev -printf '%h\n' | sort | uniq -c | sort -k 1 -n|awk '{sum+=$1} END {print "Sum = ", sum}'

1级子目录大小

1
du -h --max-depth=1 /data
1
2
#排除某目录
du -h --max-depth=1 /data --exclude="proc"

保留目录中最新的几个文件

1
2
#保留目录中最新的3个文件
echo $(ls -ltr .| grep -v total | awk '{print $9}' | head -n $(expr $(ls -l .|grep -v total|wc -l) - 3)) | xargs rm -rf

保留子目录中最新的几个文件

1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash

#保留每个子目录中最新的3个文件
base_dir=/data
for dir in $(ls $base_dir);
do
current_dir="$base_dir/$dir"
if [ -d $current_dir ]; then
cd $current_dir && echo $(ls -ltr .| grep -v total | awk '{print $9}' | head -n $(expr $(ls -l .|grep -v total|wc -l) - 3)) | xargs rm -rf
fi
done

数据库dump备份

1
mysqldump -h127.0.0.1 -uroot -proot --events --flush-logs --all-databases --single-transaction > all.sql