zoukankan      html  css  js  c++  java
  • shell 脚本案例

    1.设计一个shell程序,添加组为class1,然后添加属于这个组的30个用户,用户名为 stuxx,其中xx从01到 30

    #!/bin/bash
    i=1
    groupadd class1
    while [ $i -le 30 ]
    do
    if [ $i -le 9 ];then
    USERNAME=stu0${i}
    else
    USERNAME=stu${i}
    fi
    useradd $USERNAME
    mkdir /home/$USERNAME
    chown -R $USERNAME /home/$USERNAME
    chgrp -R class1 /home/$USERNAME
    i=$(($i+1))
    done

    2.编写一个shell程序,实现自动删除30个账号的功能,账户名为stu01至stu30

    #!/bin/bash
    i=1
    while [ $i -le 50 ]
    do
    if [ $i -le 9 ];then
    name=stu0$i
    else
    name=stu$i
    fi
    userdel -r $name
    i=$(($i+1))
    done

    3.设计一个shell程序,在每月第一天 备份并压缩/etc目录的所有内容,存放在 /root/back目录里,且文件名 未如下命名格式,yy为年mm为月,dd为日。shell程序fileback存放在/usr/bin目录下。

    (1)编写shellx程序fileback

    #!/bin/bash
    DIRNAME=`ls /root/back`
    if [ $? -eq 0 ];then
    sleep 3
    exit 1
    else
    mkdir /root/back
    cd /root/back
    YY=`date +%y`
    MM=`date +%m`
    DD=`date +%d`
    BACKETC=$YY$MM$DD_etc.tar.gz
    tar zcvf $BACKETC /etc/
    echo "fileback finished"
    fi

    (2)编写定时任务 

    echo "0 0 1 * * /bin/sh /usr/bin/fileback" > /root/etc_back

    crontab /root/etc_back

    或者使用crontab -e添加定时任务

    0  0 1 * * /bin/sh /usr/bin/fileback 

    3.设计一个shell程序,在/userdate目录下创建50个目录,即user1-user20,并设置每个目录的权限,其他用户的权限为:读,文件所有者的权限为:读,写执行,文件所有者所在的组的权限为:读,执行。

    #!/bin/bash
    i=1
    while [ $i -le 20 ]
    do
    if [ -d /userdate ];then
    mkdir /userdate/user$i
    chmod 754 /userdate/user$i
    echo "$i"
    i=$(($i+1))
    else
    mkdir /userdate
    mkdir /userdate/user$i
    chmod 754 /userdate/user$i
    echo "$i"
    i=$(($i+1))
    fi
    done

     4.mysql备份实例,自动备份mysql,并删除30天前备份的文件。

    #!/bin/bash
    BACKDIR=/data/backup/mysql/`date +%Y-%m-%d`
    MYSQLDB=www
    MYSQLPW=backup
    MYSQLUSER=backup

    if [ $UID -ne 0 ];then
    echo This script must use administrator or root user please exit!
    sleep 2
    exit 0
    fi

    if [ ! -d $BACKDIR ];then
    mkdir -p $BACKDIR
    else
    echo this is $BACKDIR is exits please exit ...
    sleep 2
    exit
    fi

    /usr/bin/mysqldump -u$MYSQLUSER -p$MYSQLPW -d $MYSQLDB > $BACKDIR/www_db.sql
    cd $BACKDIR;tar -zcf www_mysql_db.tar.gz *.sql
    cd $BACKDIR;find . -name "*.sql"|xargs rm -rf[ $? -eq 0 ]&&echo "this `date +%Y-%m-%d`RESIN BACKUP is success"

    cd /data/backup/mysql;find . -mtime +30|xargs rm -rf

    6.批量解压/tmp/images目录下为后缀名为tar的文件,并解压到/usr/www/images

    #!/bin/bash

    PATH1=/tmp/images
    PATH2=/usr/www/images

    for i in `find $PATH1 -name "*.tar"`
    do
    tar xf $i -C $PATH2
    done

  • 相关阅读:
    poj 1679 Prim判断次短路
    poj 3621 二分+spfa
    poj 3613 floyd + 快速幂
    poj3463 最短路和比最短路长1的路径数
    poj 3635 带花费的Dij+head优化
    poj 3013 SPFA
    POJ 2449 Dijstra + A* K短路
    webStorm关于ESlint6语法格式化解决方案
    Vue之 css3 样式重置 代码
    vue常用组件
  • 原文地址:https://www.cnblogs.com/liuhui-xzz/p/10308199.html
Copyright © 2011-2022 走看看