求助Linux,编写Shell脚本程序统计指定目录中普通文件的个数及其总的大小

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求助Linux,编写Shell脚本程序统计指定目录中普通文件的个数及其总的大小相关的知识,希望对你有一定的参考价值。

编写Shell脚本程序统计指定目录中普通文件的个数及其总的大小、目录的个数、链接文件的个数。
1.判定是不是在指定目录中:echo“Input a dir”
2.if[-f $file]

3.if [-d dir]
4.if [-l link]
求补全

参考技术A 大小的:du -sh 文件名
目录的:ls -lR| grep "^d" | wc -l
连接的:-l追问

我想要个完整的答案可以么?

本回答被提问者采纳

Linux系统shell脚本之检测两台服务器指定目录下的文件一致性

Linux系统shell脚本之检测两台服务器指定目录下的文件一致性

一、脚本要求

检测两台服务器指定目录下的文件一致性

二、脚本内容

   #!/bin/bash
##########################################################
#File Name:md5_file.sh
#Version:V1.0
#Aurhor:
#Emali:
#Created Time:2022-05
#Description: create files & modify files
##########################################################


#检测两台服务器指定目录下的文件一致性
DIR=/data/mysql

REMOTEIP=192.168.3.71
#将指定目录下的文件全部遍历出来并作为md5sum命令的参数,进而得到所有文件的md5值,并写入到指定文件中
find $DIR -type f|xargs md5sum > /tmp/md5_a.txt
ssh $REMOTEIP "find $DIR -type f|xargs md5sum > /tmp/md5_b.txt"
scp $REMOTEIP:/tmp/md5_b.txt /tmp   #将远端的MD5值的文件拷贝到本端
#将文件名作为遍历对象进行一一比对
for i in `awk 'print $2' /tmp/md5_a.txt`
do
#以a机器为标准,当b机器不存在遍历对象中的文件时直接输出不存在的结果
if grep -qw "$i" /tmp/md5_b.txt
then
md5_a=`grep -w "$i" /tmp/md5_a.txt|awk 'print $1'`
md5_b=`grep -w "$i" /tmp/md5_b.txt|awk 'print $1'`
#当文件存在时,如果md5值不一致则输出文件改变的结果
if [ $md5_a != $md5_b ]
then
echo "$i changed."
fi
else
echo "$i deleted."
fi
done

三、测试设置

1.server1创建文件

[root@192 mysql]# touch file0..10
[root@192 mysql]# ls
file0  file1  file10  file2  file3  file4  file5  file6  file7  file8  file9
[root@192 mysql]# echo hello >> file1
[root@192 mysql]# echo world >> file8
[root@192 mysql]# echo file >> file3

2.server2创建文件

[root@node01 ~]# mkdir -p /data/mysql
[root@node01 ~]# cd /data/mysql/
[root@node01 mysql]# ls
[root@node01 mysql]# touch file0..10
[root@node01 mysql]# echo hello >>  file1
[root@node01 mysql]# echo diff >> file2

3.配置ssh免密

在这里插入代码片

四、执行脚本

[root@192 scripts]# ./md5_file.sh 
md5_b.txt                                                                                                                                         100%  573   272.6KB/s   00:00    
/data/mysql/file2 changed.
/data/mysql/file3 changed.
/data/mysql/file8 changed.
[root@192 scripts]# 

以上是关于求助Linux,编写Shell脚本程序统计指定目录中普通文件的个数及其总的大小的主要内容,如果未能解决你的问题,请参考以下文章

求助QTP启动应用程序,要使用编写脚本的方式,而不是在windows application添加自动启动

求助:如何在shell脚本中添加写日志的功能

linux用shell编写一个简单菜单

编写shell脚本,根据登录的用户名自动转到用户主目录

Linux下开机启动脚本程序

linux统计当前在线用户(用shell脚本写出)