shell脚本之练习题
2017-09-07 16:56
323 查看
设计一个shell程序,添加一个新组为class1,然后添加属于这个组的30个用户,用户名的形式为stdxx,其中xx从01到30。
i=1 groupadd class1 while [ $i -le 30 ] do if [ $i -le 9 ] ;then USERNAME=stu0${i} else USERNAME=stu${i} fi useradd $USERNAME chgrp -R class1 /home/$USERNAME i=$(($i+1)) done
编写shell程序,实现自动删除50个账号的功能。账号名为stud1至stud50。
#!/bin/sh i=1 while [ $i -le 50 ] do userdel -r stud${i} i=$(($i+1 )) done
mysql备份实例,自动备份mysql,并删除30天前的备份文件
#!/bin/sh #auto backup mysql #wugk 2012-07-14 #PATH DEFINE BAKDIR=/data/backup/mysql/`date +%Y-%m-%d` MYSQLDB=www MYSQLPW=backup MYSQLUSR=backup if[ $UID -ne 0 ];then echo This script must use administrator or root user ,please exit! sleep 2 exit 0 fi if[ ! -d $BAKDIR ];then mkdir -p $BAKDIR else echo This is $BAKDIR exists ,please exit …. sleep 2 exit fi ###mysqldump backup mysql /usr/bin/mysqldump -u$MYSQLUSR -p$MYSQLPW -d $MYSQLDB >/data/backup/mysql/`date +%Y-%m-%d`/www_db.sql cd $BAKDIR ; tar -czf www_mysql_db.tar.gz *.sql cd $BAKDIR ;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
自动安装Nginx脚本,采用case方式,选择方式,也可以根据实际需求改成自己想要的脚本
#!/bin/sh ###nginx install shell ###wugk 2012-07-14 ###PATH DEFINE SOFT_PATH=/data/soft/ NGINX_FILE=nginx-1.2.0.tar.gz DOWN_PATH=http://nginx.org/download/ if[ $UID -ne 0 ];then echo This script must use administrator or root user ,please exit! sleep 2 exit 0 fi if[ ! -d $SOFT_PATH ];then mkdir -p $SOFT_PATH fi download () { cd $SOFT_PATH ;wget $DOWN_PATH/$NGINX_FILE } install () { yum install pcre-devel -y cd $SOFT_PATH ;tar xzf $NGINX_FILE ;cd nginx-1.2.0/ &&./configure –prefix=/usr/local/nginx/ –with-http_stub_status_module –with-http_ssl_module [ $? -eq 0 ]&&make &&make install } start () { lsof -i :80[ $? -ne 0 ]&&/usr/local/nginx/sbin/nginx } stop () { ps -ef |grep nginx |grep -v grep |awk ‘{print $2}’|xargs kill -9 } exit () { echo $? ;exit } ###case menu ##### case $1 in download ) download ;; install ) install ;; start ) start ;; stop ) stop ;; * ) echo “USAGE:$0 {download or install or start or stop}” exit esac
文件上传,列出部分代码
#!/bin/sh DATE=`date +%Y_%m_%d_%H` if [ $1 ] then for file in $(sed '/^$/d' $1) //去掉空行 do if [ -f $file ] //普通文件 then res=`scp $file $2:$file` //上传文件 if [ -z $res ] //上传成功 then echo $file >> ${DATE}_upload.log //上传成功的日志 fi elif [ -d $file ] //目录 then res=`scp -r $file $2:$file` if [ -z $res ] then echo $file >> ${DATE}_upload.log fi fi done else echo "no file" >> ${DATE}_error.log fi
相关文章推荐
- shell脚本练习题
- shell脚本练习题
- shell脚本练习题
- Shell脚本练习题
- shell 脚本之 shell 练习题汇总
- shell脚本练习题
- shell脚本练习题
- shell脚本练习题
- shell脚本练习题
- shell脚本:练习题
- shell脚本练习题
- Linux练习题-shell脚本编程基础篇(再次施工中)
- shell脚本练习题
- shell脚本练习题(一)
- shell脚本练习题
- Shell脚本中cd命令使用
- shell脚本中一些特殊符号
- python调用Shell脚本:os.system(cmd)或os.popen(cmd)的区别
- shell 脚本写的拷贝大文件显示拷贝百分比
- Shell脚本与vi编辑器:vi启动与退出、工作模式、命令大全