shell脚本兼容linux/unix与windows/cygwin的基础 :统一文本格式为:unix文本格式,即于LF为换行符(推荐方案) 在notepad上设置:编辑->档案格式转换->转换为UNIX格式 另外我觉得在自己使用的编辑器上显示回车.换行符也许是个好的习惯吧   有关于回车,换行的故事:转送门在这里,猛击吧!http://blog.sciencenet.cn/blog-948919-697160.html   关于回车换行问题,我的”痛苦“经历(传递的字符串参数有\r字符)  …
今天碰到一个奇怪的问题,编写好的shell脚本再linux上执行一直提示找不到文件或目录,后来想想是文本编辑器的问题,记录下来!!! 1.查看当前文本格式 Notepad++界面中,在右下角有文件格式的描述:“Dos\Windows或UNIX或Mac”. 2.文件转换方法 但是如果每写一个shell文件都需要这样转换可能会很麻烦,那有没有一劳永逸的办法呢?答案是有的,我们可以设置Notepad++默认新建的文件都是shell格式,具体操作如下: 打开在notepad++,设置,首选项 注意点:…
Shell脚本查看linux系统性能瓶颈(转自:http://blog.51cto.com/lizhenliang/1687612) [root@test ~]# cat show_sys_info.sh #!/bin/bash # os_check() { if [ -e /etc/redhat-release ]; then REDHAT=`cat /etc/redhat-release |cut -d' ' -f1` else DEBIAN=`cat /etc/issue |cut -d'…
Shell脚本对Linux进行文件校验 一.需求 有客户等保需求对文件一致性进行校验,想到利用md5sum工具,因此写脚本来对文件进行自定义扫描,后期可以利用其进行校验,快速校验文件发现变更的文件,一定程度及时发现等行为. 二.脚本 利用md5sum将扫描得到的文件保存在/tmp目录下,后缀为时间戳,后期可以利用此文件进行校验 #!/bin/bash #func:scan file #md5sum -c $SCAN_FILE SCAN_DIR=`echo $PATH |sed 's/:/ /g'…
shell脚本在linux中应用广泛,之前一直选用python写脚本来进行一些文件操作,但是最后发现shell脚本非常方便,所以特意来学习下皮毛,便于提高自己效率 定义变量 1 country="China" 2 Number=100 3 4 ##注意 5 ##变量名和等号之间不能有空格 6 7 ##若有调用变量,则加$即可,可perl一样 8 9 ## 输出 country, 用echo即可 10 echo $country 字符串 1 ## 单引号 2 # 单引号里的任何字符都会原…
本文介绍了计算linux网卡流量的一个shell脚本,一个通过固定间隔时间获取ifconfig eth0 的字节值而计算出网卡流量的方法,有需要的朋友参考下. 使用shell脚本计算Linux网卡流量,方法中最关键点: ifconfig $eth_name | grep bytes | awk '{print $6}' | awk -F : '{print $2}' 通过ifconfig  eth0|grep bytes 得到输入输出的流量. /@rac2=>dd2$ifconfig eth0|…
/etc/shells [root@localhost ~]# more /etc/shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin /bin/tcsh /bin/csh echo -e 相关转义符 \\ 输入\ \a 输出警告音 \b 退格,即向左删除一个字符 \c 取消输出行末的换行符,和-n选项一致 \e Esc \f 换页符 \n 换行 \r 回车 \t 制表,即Tab \…
首先,你写的shell脚本必须是正确的, 其次,无法运行的原因:因为windows下的换行是两个字节,而你上传到linux,linux下换行是两个字节,所以编译的酒不正确的,导致无法 运行脚本, 这种情况怎么办呢? 两种解决方法, 1.直接在linux环境,用vi来编写 2.上传上去的脚本要进行一下转换, dos2unix  --->  是把windows格式的文本转换成linux下格式 unix2dos  --->是把linux下文本格式转换成windows下的文本格式…
(之前写过一篇类似的文章,当时传输文件用的是ftp,因为项目觉得ftp不够安全所以这次换成了scp,同时对脚本的一些地方也做了一些调整) 其实做这个东西还是因为项目的需求,需要获取某些机器(目前主要是linux,aix,unix)上的os和db的信息,如果没有db的话给出提示信息,因为机器比较多,也是为了重复利用,因此写了这么一个shell脚本,脚本中要用到的一些关键命令,再前面几篇文章中都有介绍:awk,sed,export,sort:以及查找机器的os和db信息的命令.下面是整个代码: #!…
ShellLinux脚本 摘要:Shell语言对于接触Linux的人来说都比较熟悉,它是系统的用户界面,提供了用户与内核进行交互操作的一种接口.本文我们以Bash做为实例总结了使用Shell对系统和进程资源进行监控的一些内容,希望对您能有帮助. Shell语言对于接触Linux的人来说都比较熟悉,它是系统的用户界面,提供了用户与内核进行交互操作的一种接口.它接收用户输入的命 令并把它送入内核去执行.实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核.它没有一般编程语言的“…
Shell 简介 Shell 语言对于接触 LINUX 的人来说都比较熟悉,它是系统的用户界面,提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令并把它送入内核去执行.实际上 Shell 是一个命令解释器,它解释由用户输入的命令并且把它们送到内核.它没有一般编程语言的“编译 - 链接 - 运行”过程.不仅如此,Shell 有自己的编程语言用于对命令的编辑,它允许用户编写由 shell 命令组成的程序.Shell 编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用…
2016-11-04 22:41 原作者不详 分类: Linux(7) 在服务器运维过程中,经常需要对服务器的各种资源进行监控, 例如:CPU的负载监控,磁盘的使用率监控,进程数目监控等等,以在系统出现异常时及时报警,通知系统管理员. 本文介绍在Linux系统下几种常见的监控需求及其shell脚本的编写. 文章目录: 1.Linux使用 Shell 检查进程是否存在 2.Linux使用 Shell检测进程 CPU 利用率 3.Linux使用 Shell检测进程 内存使用量 4.Linux使用 S…
前天没事写了一个防CC攻击的Shell脚本,没想到这么快就要用上了,原因是因为360网站卫士的缓存黑名单突然无法过滤后台,导致WordPress无法登录!虽然,可以通过修改本地hosts文件来解决这个问题,但是还是想暂时取消CDN加速和防护来测试下服务器的性能优化及安全防护. 前天写的Shell脚本是加入到crontab计划任务执行的,每5分钟执行一次,今天实际测试了下,可还是可以用的,但是感觉5分钟时间有点过长,无法做到严密防护.于是稍微改进了下代码,现在简单的分享下! 一.Shell代码  …
一.实验介绍 1.1 实验内容 本课程实现 shell 脚本监控系统的各项参数,并可以将脚本加入系统环境中,可以直接在终端里执行.还添加了几个参数,一个脚本可以执行不同的操作. 1.2 知识点 本实验涵盖以下知识点: Bash 脚本编程 如何获取 Linux 系统信息 如何实时获取 Linux 资源使用率 1.3 实验环节 vim编辑器 shell解释器(linux自带) 1.4 适合人群 适合人群:本课程适合有shell语法基础,想学习shell脚本的实际使用的同学,可以加深对于shell脚本…
如果一个系统管理员花费大量的时间解决问题以及做重复的工作,你就应该怀疑他这么做是否正确.一个高效的系统管理员应该制定一个计划使得其尽量花费少的时间去做重复的工作.因此尽管看起来他没有做很多的工作,但那是因为 shell 脚本帮助他完成了大部分任务,这也就是我们将要探讨的东西. 什么是 shell 脚本? 简单的说,shell 脚本就是一个由 shell 一步一步执行的程序,而 shell 是在 Linux 内核和最终用户之间提供接口的另一个程序. 默认情况下,RHEL 7 中用户使用的 shel…
最终效果 1. 自定义表格样式 2. 自定义主题颜色 支持三系普通颜色 支持16色彩虹色 支持单颜色 回顾一下shell语法 1. shell传递参数 我们可以在执行shell脚本时实时传递参数从而指定某些具体的参数(在本例中包括表格的样式.颜色等),脚本中获取参数的格式为$n.其中除n为0表示执行的文件名外,1表示第一个参数,2表示第二个参数,以此类推. 每一模式必须以右括号结束 匹配到取值符合某一模式后,执行模式所有命令直到;; 一旦模式匹配则不会执行其他模式 如果无一模式匹配,可以使用*捕…
Shell脚本如下: vim monitor.sh #!/bin/bash while true # 无限循环 flag=`ps -aux |grep "httpd" |grep -v "grep" |wc -l` do ]] # 判断进程数如果等于0,则启动httpd then `systemctl start httpd` # 启动httpd echo `date` - "Apache restart" >> running.lo…
一些零碎的基础知识 一.认识Shell脚本 一)相关概念 Shell是一种命令解释器,作用是按次序执行(遇到子脚本,先执行子脚本的命令)用户输入的命令和程序. Shell脚本语言是弱类型语言,与其他脚本语言相比的优势是可以处理偏操作系统底层的业务. 查看系统默认Shell: #方法一: echo $SHELL #方法二: grep root /etc/passwd 二)开发规范 1)脚本第一行指定解释器 #!/bin/bash 2)开头添加版本.版权等信息 3)脚本中尽量不要用中文 4)扩展名为…
错误: /bin/bash^M: bad interpreter: 没有那个文件或目录 解决方案: 运行脚本时出现了这样一个错误,打开之后并没有找到所谓的^M,查了之后才知道原来是文件格式的问题,也就是linux和windows之间的不完全兼容...具体细节不管,如果验证: vim test.sh:set ff?如果出现fileforma=dos那么就基本可以确定是这个问题了.:set fileformat=unix:wq!…
win上是dos模式,需要改成unix模式 方法是: 在linux上vim 打开脚本,然后:set ff=unix…
    事情由起:svn的url在excel里,我复制到txt文本下,vi做些文本处理,只提取了url,保存为url.txt.再用vi处理url.txt,加上svn checkout等词,变成可以运行的svn.sh.每一行都是svn checkout .../proj_name/trunk  proj_name/trunk...... 触发动作:bash svn.shshell回显一切正常,似乎没有问题. 有什么问题呢?问题就在与我windows下的'\r'(回车)一直带到svn.sh里了,li…
转载请注明出处:http://blog.csdn.net/hellomxj1/ 功能:在linux系统上实现wifi STA与AP功能的转换 实现成果:1.加入wifipassword账户add_wifi_account. 2.wifi两种模式启动的脚本wifi_start: 3.帮助信息README_WIFI_START: 详细实现步骤例如以下: 加入wifipassword账户add_wifi_account 1 #!/bin/sh 2 3 echo "Add Wifi Account ..…
#!/bin/sh TARGETIP=192.168.88.3 #这里是你要挂在的ftp服务器的IP地址 MOUNTDIR=/mnt TARGETDIR=/root/Desktop/Work ERRORLOG=/tmp/Copy.log #1.挂载目录 #环境检查 #清掉之前的日志 echo -n "" > $ERRORLOG #如果挂载不到,或是出错就把出错信息打印到log里去,方便查看 if ! test -e $TARGETDIR #如果在192.168.88.3这个IP下…
原文vi ./Get_Dist_Name.sh #!/bin/bash Get_Dist_Name() { if grep -Eqii "CentOS" /etc/issue || grep -Eq "CentOS" /etc/*-release; then DISTRO='CentOS' PM='yum' elif grep -Eqi "Red Hat Enterprise Linux Server" /etc/issue || grep -E…
脚本目的:分析系统资源性能瓶颈 脚本功能: 1.查看CPU利用率与负载(top.vmstat.sar) 2.查看磁盘.Inode利用率与I/O负载(df.iostat.iotop.sar.dstat) 3.查看内存利用率(free.vmstat) 4.查看TCP连接状态(netstat.ss) 5.查看CPU与内存占用最高的10个进程(top.ps) 6.查看网络流量(ifconfig.iftop.iptraf) 脚本说明:通过一些常用的性能分析工具,计算出我们想知道的信息. 脚本如下: # c…
[root@dn3 data]# cat monitor.sh #!/bin/bash cpu_idle=$(top -n2|grep 'Cpu'|tail -n 1|awk '{print $8}') cpu_usage=$(echo "100 - $cpu_idle"|bc|awk '{printf "%.2f", $0}') echo "CPU利用率:$cpu_usage %" mem_free=$(free -m|awk '/Mem:/{…
文章目录 内存压测 python的方式 shell的方式 cpu压测 在正常手段下,这个只是压测的方法 在不正常手段下(crontab计划任务),可以提高CPU和内存的使用率 什么?你问我为什么要提高CPU和内存的使用率?只可意会不可言传,自己悟吧 内存压测 python的方式 # _*_ coding: utf-8 _*_ import sys import re import time def print_help(): print ('Usage:') print ('python mem…
#!/bin/sh # $1 MOUNTDIR $2 TARGETDIR $3 ERRORLOG #参数检查 if test $# -ne 3 then echo "argument check fail" exit 0 fi for i in `ls $1` do if test -d $1/$i then #目录 if test -e $2/$i then #目录存在 ./Copy.sh $1/$i $2/$i $3 & else #目录不存在 \cp $1/$i $2/$…
一.登录日志记录 vi /etc/profile 在最后面添加一行: echo "`who`" > /var/log/login.log 二.监控日志文件 #!/bin/bash while true do sleep a=`stat -c %Y /var/log/login.log` b=`date +%s` ]; then echo "somebody login in!!!do something!!!" `执行命令` fi echo "eve…
序,掌握shell脚本是linux运维工程师的最基础技能. 一.脚本语言 与高级语言不通,脚本语言运行时需要调用相应的解释器来翻译脚本中的内容. 常见的脚本语言有Shell脚本.Python脚本.php脚本.Perl脚本等. 二.Shell脚本格式范例 第一行#!的作用是指定该脚本程序的命令解释器 #!/bin/bash # # echo "Hello the world" 三.运行脚本的方式 1 赋予权限,直接运行脚本 chmod a+x print.sh/root/print.sh…