BASH小脚本

1.查找当前目录中所有大于500M的文件,把这些文件名写到一个文本文件中,并统计其个数。

find ./ -size +500M -type f | tee file_list | wc -l

2.在目录/tmp下找到100个以abc开头的文件,然后把这些文件的第一行保存到文件new中。

for filename in `find /tmp -type f -name "abc*"|head -n 100`
do
sed -n '1p' $filename>>new
done

3.把文件b中有的,但是文件a中没有的所有行,保存为文件c,并统计c的行数。

grep -xvf a b | tee c | wc –l

4.判断一文件是不是块或字符设备文件,如果是将其拷贝到 /dev 目录下

read -p "input a file:" filename
if [ -b $filename -o -c $filename ]
then
    cp $filename /dev/
fi

5.每隔10分钟监控一次,监控/usr下如果大于5G,发邮件给管理员

#!/bin/bash
while true
do
    sleep 600
    n=$(du -s /usr | cut -f1)
    if [ $n -gt 5242880 ]
    then
        mail -s "greater" filwsyl@gmail.com < ~/filename #将文件filename的内容发送出去。
    fi
done

6.把某个目录下的文件扩展名改为bat,再以时间为文件名压缩打包存放到某个目录。

#!/bin/bash
for file in $(ls $1)
do
    new_file=${file%.*}.bat
    mv ./$1/$file ./$1/$new_file
    tmp=$(date +%y)
    tar cvf ./$tmp.tar ./$1
done


 

原文地址:https://www.cnblogs.com/Rainbow-G/p/4080033.html