Shell

1 首先要写一个测试脚本输出内存使用率
这是我写的有报错,下面有一个企业级的来对比一下我的错误。

vim serverstatus.sh
used.mem="free -m | grep Mem | awk '{print$3}'"
total.mem=" free -m | grep Mem | awk '{print$2}' "
usepercent=$(used.mem*100/total.mem)
echo usepercent

这里插嘴一下,那个grep只能过滤一行的,出来是一行的

#!/usr/bin/bash
mem_used=`free -m | grep Mem | awk '{print $3}'`
mem_total=`free -m | grep Mem | awk '{print $2}'`
mem_percent=$((mem_used*100/mem_total))

echo "当前内存使用百分比:$mem_percent%"

后面的就好写了然后是CPU负载 利用uptime命令可以看到平均负载
其中load average的三个值分别表示1分钟、5分钟、15分钟的CPU负载情况
(我这样的命名方法是-#错误#-的-根本识别不出变量)

average-load1 =`uptime | awk -F, '{print$3}' | awk -F: '{print$2}'`
average-load5=`uptime | awk -F, '{print$4}'`
average-load15=`uptime | awk -F, '{print$5}'`

然后是就是磁盘利用率

disk_percent=`df -h | grep "mapper"| awk '{print$5}'`

最后是io,这个是直接读取第四行,注意的是==

io_average=`iostat -x| awk 'NR==4{print$4}'`

我试验了从外面导入数据库,还是可以的
mysql -uroot -p123 -e "insert into lover.list values(1,2,3,4)"

mysql -uroot -p123 -e "insert into lover.list values($mem_percent,$average-load5,$disk_percent,$io_average)"

这里出现了一个错误,由于disk_percent 导出来的是19%导不进去
我当时用的varchar来建表,问题是如果是非数字都要用' ' 注意是单


2019/7/14 我要开始练习我的脚本了


1 这是一个有关日志练习的小脚本

#清理今天所产生的导出文件
time1=$(date "+%Y-%m-%d");
exportpath="/root/jiaobeng/rizhi/$time1/";
echo $exportpath;
if [ -d $exportpath ];then
    rm -rf $exportpath;
    if [ $? -eq 0 ];then
        echo "删除文件夹$exportpath" >> /root/jiaobeng/rizhi/rm_export_dir_success.log;
    fi
else
    echo "文件夹不存在" >> /root/jiaobeng/rizhi/rm_day_exportdir.log;
fi
**********************************************************************************
我来理解一下,这就是日常清理每天日期文件,然后将处理信息分别发送对应的日志
首先是要执行脚本就要每天执行,每天的文件夹也不一样 同样的来说执行删除命令的时候那个路径也是一个变量
当我创建一个当前日期的文件夹是mkdir `date +%Y-%m-%d`
time1=$(date +%Y-%m-%d)
# 引用变量时要$,  如果要变$,不变的直接引用的命令加""
transportpath="/root/jiaoben/test/$time1"
# 看输出路径是否错误
echo $transportpath
# 如果这个目录存在则把这个目录删掉,shell 中判断是用[],判断目录是否存在
if [ -d $transportpath];then
   rm -rf $transportpath
   echo "$transportpath删除成功"  >> 成功日志
else
   echo "$transportpath文件夹不存在"  >> 失败日志
fi
其实不加第二个判断也是可以的

编写shell脚本,清理/var/logs/目录下的一个持续增长的conn.log文件,以日为单位形成一个新的压缩文件,并删除30天前的日志压缩文件

# vim cleanlog.sh    创建脚本
# tar -czf /root/jiaobeng/rizhi/19年07月13号-15:04:54/bjd.tar rm_day_exportdir.sh   我用这个命令试验了一下成功了
# 我来介绍一下压缩的命令  tar -czf 首先是压缩的路径名字 然后是压缩的内容
tar -czf /log_backup/conn_`date +%y年%m月%d号-%H:%M:%S`.log.tar.gz /var/logs/conn.log
rm-rf/var/logs/conn.log
find /log_backup/-mtime+30 -exec rm{}\;

  1. 1)备份并压缩/data目录的所有内容,存放在/backup目录里,且文件名为如下形式
  2. yymmdd_data,yy为年,mm为月,dd为日
  3. 2)读取/app/app.log文件中每行第一个域的全部数据加入到/backup/yymmdd_app_am.log,yy为年,mm为月,dd为日
  4. 3)删除/app/app.log文件
  5. shell程序appbak存放在/usr/bin目录下。(最少写一个循环)
vim/usr/bin/appbak
abc=`date +%Y%b%d`_data
tar-czf/usr/bin/backup/$abc /data
wait
cat /app/app.log |awk'{print$1}' >> /usr/bin/backup/$abc
rm -rf /app/app.log 
# 这是什么鬼哟,文件还能加到压缩文件中吗?

  1. 实现用用户输入入用用户名和密码,当用用户名为ye或sk且密码为123时,显示登陆成功,否则登陆失败,失败时允许重复输入入三次
# shell中语法和python的语法细节有些不同,为避免弄混我先好好研究下shell
while true
do
read -p"请输入你的用户名:" username
if [[ $username = "ye" || $username = "sk" ]];then
    for i in {1..3}
    do
    read -p"请输入你的密码:" password
    if [[ $password = "123" ]];then
        echo "您已成功登陆"
    exit
    else
        echo "密码错误,需要重新输入"
    fi
    done
    echo "登陆失败"
    exit
else
echo "该账户不存在,请重新输入"
fi
done
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容

  • Linux Shell常用shell命令 一、文件、目录操作命令 1、ls命令 功能:显示文件和目录的信息 ls以...
    郭苒阅读 6,938评论 0 1
  • Linux Shell常用shell命令 一、文件、目录操作命令 1、ls命令 功能:显示文件和目录的信息 ls以...
    枫叶鱼水阅读 574评论 0 2
  • 一、文件、目录操作命令 1、ls命令 功能:显示文件和目录的信息ls以默认方式显示当前目录文件列表ls -a 显示...
    e514933f32da阅读 338评论 0 0
  • 一,shell题记 不懂shell的程序员不是好程序员,学习shell是为了自动化,使用自动化可以非常有效的提高工...
    架构师小秘圈阅读 8,719评论 3 70
  • 小时候的我总想快点长大,去做自己想做的事。后来慢慢地长大了,却又怀念过去时候的无忧无虑。于是,我在这条...
    大头儿子99096阅读 455评论 0 0