脚本相关
魏波-CSDN博主
魏波.
魏波
展开
-
shell实例第23讲:每天定时备份nginx日志
每天定时备份nginx日志要求每天凌晨3点开始备份nginx日志一、编写日志切割脚本#!/bin/bashLOG_DIR=/usr/local/webserver/nginx/logs/YESTERDAY_TIME=$(date -d "Yesterday Time" +%F)LOG_MONTH_DIR=$LOG_DIR/$(date +"%Y-%m")LOG_FILE_LIST="access.log"for LOG_FILE in $...原创 2021-05-15 15:51:31 · 407 阅读 · 0 评论 -
shell实例第22讲:shell中分隔符IFS用法
shell中分隔符IFS用法1、什么是IFS?IFS在shell中是分隔符的意思,即IFS这个变量中存放了分隔符。2、IFS是全局变量还是局部变量?(1)linux中变量分两种:全局变量env和局部变量set。(2)验证IFS是局部还是全局变量env | grep IFSset | grep IFS结果显示如下:env | grep IFS为空,而set | grep IFS有值结论:1)IFS是局部变量;2)IFS默认是以空格、制表符、换行符进行分割。.原创 2021-05-11 21:54:17 · 807 阅读 · 0 评论 -
shell实例第21讲:定时清空文件内容,定时记录文件大小
#!/bin/bash##################################################################################每小时执行一次脚本(任务计划),当时间为0点或12点时,将目标目录下的所有文件内#容清空,但不删除文件,其他时间则只统计各个文件的大小,一个文件一行,输出到以时间#和日期命名的文件中,需要考虑目标目录下二级、三级等子目录的文件###########################################.原创 2021-04-21 12:28:16 · 500 阅读 · 0 评论 -
shell实例第20讲:linux shell date的用法
linux shell date的用法转自:https://www.cnblogs.com/faberbeta/p/linux-shell002.html1、date中的参数%% 一个文字的 % %a 当前locale 的星期名缩写(例如: 日,代表星期日) %A 当前locale 的星期名全称 (如:星期日) %b 当前locale 的月名缩写 (如:一,代表一月) %B 当前locale 的月名全称 (如:一月) %c 当前locale 的日期和时间 (如:转载 2021-04-21 12:00:02 · 404 阅读 · 0 评论 -
shell实例第19讲:一个脚本中调用另一个脚本的3种方法
在Shell脚本中调用另一个脚本(3种方法)准备:主脚本是second.sh,主脚本中调用first.sh方法1:exec (1)执行方式:exec /home/weibo/shell_test/second.sh (2)特点: 1)运行主脚本时不会新开一个子shell来执行被调用脚本first.sh,被调用的脚本与主脚本在同一个Shell内执行,所以被调用的脚本中声明的变量和环境变量, 都可以在主脚本中进行获取和使用。 2)使用exec调用原创 2021-03-20 22:55:24 · 8675 阅读 · 0 评论 -
shell实例第18讲:利用gzexe加密shell脚本
利用gzexe加密shell脚本gzexe_test.sh内容如下:#!/bin/bashecho "gzexe test!"结果:使用gzexe加密shell脚本命令:gzexe gzexe_test.sh,生成gzexe_test.sh~文件是原shell脚本的备份。gzexe_test.sh是加密后的脚本文件,这种加密方式不是非常保险的方法,但是能够满足一般的加密用途,可以隐蔽脚本中的密码等信息。它是使用系统自带的gzexe程序,它不但加密,同时压缩文件。加密后的g原创 2021-03-20 19:15:59 · 1081 阅读 · 0 评论 -
shell实例第17讲:连续输入4个100以内的数字,统计和、乘、平均、最小和最大
连续输入4个100以内的数字,统计和、乘、平均、最小和最大#!/bin/bash#作者:魏波#时间:2017.02.04COUNT=1SUM=0MIN=0MAX=0AVG_INT=0AVG_FLOAT=0MUL=1while [ $COUNT -le 4 ]do read -p "请输入1-10个整数:" input_number if [[ ! $input_number =~ ^[0-9]+$ ]]; then echo "输入必须是整数!"原创 2021-03-12 21:19:59 · 727 阅读 · 0 评论 -
shell实例第16讲:猜拳游戏
#!/bin/bash#Author:weibo#TMEE:2017.01.03game="石头剪刀布游戏中机器人是:"while truedo echo "请根据下列提示选择您的出拳手势" echo "1.石头" echo "2.剪刀" echo "3.布" num=$[RANDOM%3+1] computer="$game$num" read -p ">>>.原创 2021-03-06 21:48:46 · 536 阅读 · 0 评论 -
shell实例第15讲:俄罗斯方块游戏
#!/bin/bashAPP_NAME="${0##*[\\/]}"APP_VERSION="1.0"#颜色定义iSumColor=7 #颜色总数cRed=1 #红色cGreen=2 #绿色cYellow=3 #黄色cBlue=4 #蓝色cFuchsia=5 #紫红色cCyan=6 #青色(蓝绿色)cWhite=7 #白色#位置与大小marginLeft=3 #边框左边距marginTop=2 #边框上边距((mapL.转载 2021-03-06 18:49:20 · 294 阅读 · 0 评论 -
shell实例第14讲:字符串截取的8种方法
方法1:#号截取#!/bin/bashvar=http://www.weibo.com/weibo.htmlecho ${var#*//}#号截取:从左边开始匹配,删除匹配到的第一个字符以及左边的字符说明:var是变量名,#号是运算符(删除),*代表所有,//表示从左边开始删除第一个//号及左边的所有字符,即删除 http://,结果如下图:方法2:##号截取#!/bin/bashvar=http://www.weibo.com/weibo.htmlecho ${..原创 2021-03-06 18:08:28 · 305 阅读 · 0 评论 -
shell实例第13讲:从FTP服务器下载文件
#!/bin/bashif [ $# -ne 1 ]; then echo "Usage: $0 filename"fidir=$(dirname $1)file=$(basename $1)echo "$dir"echo "$file"ftp -n -v << EOF open 192.168.1.10 # ftp服务器user admin passwordbinary cd ”$dir“get "$file"EOF说明:1、if [ $#.原创 2021-03-05 22:20:13 · 1100 阅读 · 0 评论 -
shell实例第0讲:shell脚本完整pdf文档下载
shell脚本完整pdf文档下载链接:https://pan.baidu.com/s/10NTBAHv0zyP-wDnlblVvLg 提取码:6myfshell脚本完整pdf文档目录如下:原创 2021-02-21 21:03:25 · 550 阅读 · 0 评论 -
shell实例第12讲:给定目录找出包含关键字的文件
#!/bin/bashDIR=$1KEY=$2for FILE in $(find $DIR -type f); do if grep $KEY $FILE &>/dev/null; then echo "--> $FILE" fidone说明:(1)find $DIR -type f按照文件类型搜索: find 搜索路径 [选项] 搜索内容选项:-type d:查找目录-type f:查找普通文件-type l:查找软链接.原创 2021-02-21 20:27:09 · 1581 阅读 · 0 评论 -
shell实例第11讲:取出系统IP地址,并判断属于哪个网段
取出系统IP地址,并判断属于哪个网段#!/bin/baship=`ifconfig -a | grep inet | grep -v 127.0.0.1 | grep -v inet6 | awk '{print $2}' | tr -d "addr:"`echo $ipif [[ $ip == "10."* ]];then echo "该网段是10.*.*.*网段"else echo "该网段是192.*.*.*网段"fi说明:(1)ifconf原创 2021-02-21 19:54:48 · 1017 阅读 · 0 评论 -
powershell实例第1讲:判断某个文件夹是否存在,存在则删除
用powershell删除2这个文件夹$CONFIG_PATH="D:\powershell\2"$TRUE_FALSE=(Test-Path $CONFIG_PATH)if($TRUE_FALSE -eq "True"){ remove-Item -Recurse -Force $CONFIG_PATH}结果:原创 2021-02-02 18:27:59 · 9734 阅读 · 1 评论 -
shell实例第10讲:判断用户输入的是否为数字
#!/bin/bashif [ -n "$1" ]; then if [[ $1 =~ ^[0-9]+$ ]]; then echo "$1 Is Number." else echo "$1 No Number." fielse echo "please input number!"fi说明:if [[ $1 =~ ^[0-9]+$ ]](1)=~ 运算符就是进.原创 2021-01-31 19:44:13 · 3308 阅读 · 0 评论 -
shell实例第9讲:判断用户输入的是否为IP地址
备注:grep使用详见:https://www.cnblogs.com/htyj/p/10256612.html#!/bin/bashfunction check_ip(){ IP=$1 VALID_CHECK=$(echo $IP|awk -F. '$1<=255 && $2<=255 && $3<=255 && $4<=255 {print "yes"}') echo $VA原创 2021-01-31 19:00:51 · 2685 阅读 · 0 评论 -
shell实例第8讲:seq命令
shell脚本之seq命令seq 用于生成从一个数到另一个数之间的所有整数。(1)seq 5或seq 1 5(2)-f 指定输出格式,seq -f “%3g”1 3 数字位数为三位,不足补空格(3)seq -f “%03g” 1 5 数字位数为三位,不足补零(4)seq -f "str%03g" 1 3(5)-s 指定分隔符,默认分隔符是/n(回车),seq -s " " 1 5 空格作为分隔符...原创 2021-01-31 18:34:18 · 1153 阅读 · 0 评论 -
shell实例第7讲:awk命令
Linux awk 命令 | 菜鸟教程 https://www.runoob.com/linux/linux-comm-awk.html(1)awk -F ":" '{print $1,$7}' /etc/passwd注意:1)$0表示显示当前行2)$NF表示最后一个字段,$($NF-1)表示倒数第二个字段3)NR表示要输出第几行4)其他内置变量内置变量: FS: 输入字段分隔符,默认为空白字符 OFS: 输出字段分隔符,...原创 2021-01-31 18:28:40 · 274 阅读 · 0 评论 -
shell实例第6讲:检查主机存活状态
检查主机存活状态#!/bin/bashIP_LIST="192.168.18.3 192.168.52.1"for IP in $IP_LIST; do NUM=1 while [ $NUM -le 3 ]; do if ping -c 1 $IP > /dev/null; then echo "$IP Ping is successful."原创 2021-01-31 16:58:14 · 337 阅读 · 0 评论 -
shell实例第5讲:检查软件包是否安装
检查软件包是否安装#!/bin/bashif rpm -q $! &>/dev/null; then echo "$1 is already installed." else echo "$1 is not installed!"fi~原创 2021-01-31 13:34:14 · 1400 阅读 · 0 评论 -
shell实例第4讲:批量创建用户
批量创建10个用户#!/bin/bashUSER_FILE=user.txtDATE=$(date +%F_%T)if [ -s $USER_FILE ]; then mv $USER_FILE ${USER_FILE}-${DATE}.bak echo "$USER_FILE exist!"fiecho -e "User Password" >> $USER_FILEecho "----------------" >> $U原创 2021-01-31 13:26:25 · 648 阅读 · 1 评论 -
shell实例第3讲:获取随机8位数字
获取随机8位数字常用三种方法:方法一:echo $RANDOM |cksum |cut -c 1-8说明:(1)shell cksum 命令用于检查文件的CRC是否正确。 确保文件从一个系统传输到另一个系统的过程中不被损坏。cksum 命令将输出校验码等相关的信息,输的的校验码是10位的数字。(2)cut命令将行按指定的分隔符分割成多列,它的弱点在于不好处理多个分隔符重复的情况,因此经常结合tr的压缩功能。-b:按字节筛选;-n:与"-b"选项连用,表示禁止将字节分割开来操作.原创 2021-01-31 10:26:04 · 1126 阅读 · 0 评论 -
shell实例第2讲:获取随机字符串
获取随机字符串常用三种方法:方法一:echo $RANDOM |md5sum |cut -c 1-8说明:(1)RANDOM会产生随机数,经过md5sum,再通过cut截取第一位到第八位的字符串(2)md5sum命令用于生成和校验文件的md5值,md5值是一个128位的二进制数据,转换成16进制则是32(128/4)位的进制值。md5校验,有很小的概率不同的文件生成的md5可能相同。比md5更安全的校验算法还有SHA*系列的。(3)UNIX下校验文件一致性的方法很多,比如sum原创 2021-01-27 12:59:02 · 1434 阅读 · 0 评论 -
shell实例第1讲:编写shell脚本注意事项
编写shell前需要注意以下几点,注意点会不断更新。1、开头加解释器:#!/bin/bash2、语法缩进,使用四个空格3、多加注释说明4、命名建议规则:变量名大写、局部变量小写,函数名小写,名字体现出实际作用。5、默认变量是全局的,在函数中变量local指定为局部变量,避免污染其他作用域。6、调试脚本:set -e 遇到执行非0时退出脚本,set-x 打印执行过程。...原创 2021-01-27 12:22:57 · 865 阅读 · 0 评论