写个shell,看看你的Linux系统中是否有自定义用户(普通用户),若是有,一共有几个?

#!/bin/bash v=awk -F 'release ' '{print $2}' /etc/redhat-release|cut -d "." -f1 panduan () { if [ $1 -eq 0 ] then echo "meiyouzidingyiyonghu" else echo "youzidingyiyonghu $1 ge" fi }

case $v in 5|6) n=awk -F':' '$3>=500' /etc/passwd|wc -l panduan $n ;; 7) n=awk -F':' '$3>=1000' /etc/passwd|wc -l panduan $n ;; *) echo "xitongbushi centos5|6|7" ;; esac

写一个shell脚本,检测所有磁盘分区使用率和inode使用率并记录到以当天日期为命名的日志文件里,当发现某个分区容量或者inode使用量大于85%时,发邮件通知你自己。 df -i date +%F

#!/bin/bash dir=/tmp/disk d=date +%F mail=123456@qq.com

[ -d $dir ] || mkdir $dir

df >> $dir/$d.log df -i >> $dir/$d.log

df|sed '1d' |awk -F ' +|%' '$5>=85 {print $7}' > $dir/df.tmp df -i|sed '1d' |awk -F ' +|%' '$5>=85 {print $7}' > $dir/df_i.tmp

n1=wc -l $dir/df.tmp|awk '{print $1}' n2=wc -l $dir/df_i.tmp|awk '{print $1}'

tag=0 if [ $n1 -gt 0 ] then if [ $n2 -gt 0 ] then tag=11 else tag=10 fi else if [ $n2 -gt 0 ] then tag=01 else tag=00 fi fi

case $tag in 11) python mail.py $mail "磁盘空间和inode使用率高于85%" "cat $dir/df.tmp $dir/df_i.tmp|xargs" ;; 10) python mail.py $mail "磁盘空间使用率高于85%" "cat $dir/df.tmp|xargs" ;; 01) python mail.py $mail "磁盘inode使用率高于85%" "cat $dir/df_i.tmp|xargs" ;; *) ;; esac

有一台服务器作为web应用,有一个目录(/data/web/attachment)不定时地会被用户上传新的文件,但是不知道什么时候会上传。所以,需要我们每5分钟做一次检测是否有新文件生成。

请写一个shell脚本去完成检测。检测完成后若是有新文件,还需要将新文件的列表输出到一个按年、月、日、时、分为名字的日志里。

find -mmin -5 date +%Y%m%d%H%M

#!/bin/bash basedir=/data/web/attachment t=date +%Y%m%d%H%M find $basedir/ -type f -mmin -5 >/tmp/file.list n=wc -l /tmp/file.list|awk '{print $1}' if [ $n -gt 0 ] then mv /tmp/file.list /tmp/$t.file.list fi

#写入任务计划每五分钟执行一次

写一个shell脚本来看看你使用最多的命令是哪些,列出你最常用的命令top10。

#!/bin/bash cat ~/.bash_history|sort|uniq -c|sort -nr |head

假如需要每小时都去执行一个脚本。在脚本中实现这样的功能,当时间是0点和12点时,需要将目录/data/log/下的文件全部清空,

注意只能清空文件内容而不能删除文件。而其他时间只需要统计一下每个文件的大小,一个文件一行,输出到一个按日期和时间为名字的日志里。

需要考虑/data/log/目录下的二级、三级、… 等子目录里面的文件。

find 列出所有文件 date +%H

file 清空文件

#!/bin/bash dir=/tmp/log_stat t=date +%d%H ###t1=date +%H logdir=/data/log [ -d $dir ]|| mkdir $dir [ -f $dir/$t.log ]&& rm -f $dir/$t.log if [ $t == "00" ]||[ $t == "12" ] then for f in find $logdir/ -type f do >$f done else for f in find $logdir/ -type f do du -sh %f>>$t.log done fi