工作中编写shell脚本设计到相关信息

知识点一、

获取本机ip地址地址,并保存到变量中

arg=`ifconfig eth0 |grep "inet addr"| cut -f 2 -d ":"|cut -f 1 -d " "`

ipaddr=$arg

echo $ipadd

 

 

cut参数简介

-d用来定义分隔符,默认为tab键,

-f表示需要取得哪个字段,2表示取得以-d指定的分隔符分割的第二个字段
当然也可以通过cut取得文件中每行中特定的几个字符,例如:
cut -c3-5 /etc/passwd
就是输出/etc/passwd文件中每行的第三到第五个字符。
-c 和 -f 参数可以跟以下子参数:
N 第N个字符或字段
N- 从第一个字符或字段到文件结束
N-M 从第N个到第M个字符或字段
-M 从第一个到第M个字符或字段

 

获取配置文件*.cfg中的内容

1.使用grep定位变量的行
2.使用cut获以=号分隔获取变量的值

例如:
JAVA_HOME=`grep -E '^JAVA_HOME' *.cfg|cut -d /= -f 2`
使用grep -E 使用正则表达式找以JAVA_HOME开头的变量,
找到后cut -d 以等号分隔,在获取分隔后的第2列内容.
获取出的值就是/usr/map/java/jdk1.6.0_13/

 

--------------*.cfg文件-----------------------
JAVA_HOME=/usr/map/java/jdk1.6.0_13/
MAP_SERVER_HOME=/usr/map/mapserver/
MEMCACHED_HOME=/usr/map/memcached/memcached-1.4.2/

MYSQL_BACKUP_HOME=/usr/map/mapserver/mysqldata/


MAP_SERVER_VERSION=5.0
~
------------------------------------------------------


知识点二、

wget知识

 

Linux wget工具的使用方法讲解
帮wget工具做做广告:
       1、wget是Linux操作从网络上自动下载文件的工具。支持HTTP、HTTPS、FTP下载,同时支持HTTP代理下载;
       2、支持整站下载(递归下载);
       3、支持断点下载(即下载过程突然中断,wget还会重新连接服务器继续下载);
       4、支持后台自动下载(即启动一个下载任务后,可以退出系统、切换用户);
       5、非常稳定;
       6、支持批量下载;
       7、支持选择性下载;
       8、所有的Linux发行版都带有该工具 
      
长选项必须用的参数在使用短选项时也是必须的。
启动:
-V, --version 显示 Wget 的版本并且退出。
-h, --help 打印此帮助。
-b, -background 启动后进入后台操作。
-e, -execute=COMMAND 运行‘.wgetrc’形式的命令。

日志记录及输入文件:
-o, --output-file=文件 将日志消息写入到指定文件中。
-a, --append-output=文件 将日志消息追加到指定文件的末端。
-d, --debug 打印调试输出。
-q, --quiet 安静模式(不输出信息)。
-v, --verbose 详细输出模式(默认)。
-nv, --non-verbose 关闭详细输出模式,但不进入安静模式。
-i, --input-file=文件 下载从指定文件中找到的 URL。
-F, --force-html 以 HTML 方式处理输入文件。
-B, --base=URL 使用 -F -i 文件选项时,在相对链接前添加指定的 URL 。

下载:
-t, --tries=次数 配置重试次数(0 表示无限)。
--retry-connrefused 即使拒绝连接也重试。
-O --output-document=文件 将数据写入此文件中。
-nc, --no-clobber 不更改已经存在的文件,也不使用在文件名后
添加 .#(# 为数字)的方法写入新的文件。
-c, --continue 继续接收已下载了一部分的文件。
--progress=方式 选择下载进度的表示方式。
-N, --timestamping 除非远程文件较新,否则不再取回。
-S, --server-response 显示服务器回应消息。
--spider 不下载任何数据。
-T, --timeout=秒数 配置读取数据的超时时间 (秒数)。
-w, --wait=秒数 接收不同文件之间等待的秒数。
--waitretry=秒数 在每次重试之间稍等一段时间 (由 1 秒至指定的 秒数 不等)。
--random-wait 接收不同文件之间稍等一段时间(由 0 秒至 2*WAIT 秒不等)。
-Y, --proxy=on/off 打开或关闭代理服务器。
-Q, --quota=大小 配置接收数据的限额大小。
--bind-address=地址 使用本机的指定地址 (主机名称或 IP) 进行连接。
--limit-rate=速率 限制下载的速率。
--dns-cache=off 禁止查找存于高速缓存中的 DNS。
--restrict-file-names=OS 限制文件名中的字符为指定的 OS (操作系统) 所允许 的字符。

目录:
-nd --no-directories 不创建目录。
-x, --force-directories 强制创建目录。
-nH, --no-host-directories 不创建含有远程主机名称的目录。
-P, --directory-prefix=名称 保存文件前先创建指定名称的目录。
--cut-dirs=数目 忽略远程目录中指定数目的目录层。

HTTP 选项:
--http-user=用户 配置 http 用户名。
--http-passwd=密码 配置 http 用户密码。
-C, --cache=on/off (不)使用服务器中的高速缓存中的数据 (默认是使用的)。
-E, --html-extension 将所有 MIME 类型为 text/html 的文件都加上 .html 扩 展文件名。
--ignore-length 忽略“Content-Length”文件头字段。
--header=字符串 在文件头中添加指定字符串。
--proxy-user=用户 配置代理服务器用户名。
--proxy-passwd=密码 配置代理服务器用户密码。
--referer=URL 在 HTTP 请求中包含“Referer:URL”头。
-s, --save-headers 将 HTTP 头存入文件。
-U, --user-agent=AGENT 标志为 AGENT 而不是 Wget/VERSION。
--no-http-keep-alive 禁用 HTTP keep-alive(持久性连接)。
--cookies=off 禁用 cookie。
--load-cookies=文件 会话开始前由指定文件载入 cookie。
--save-cookies=文件 会话结束后将 cookie 保存至指定文件。
--post-data=字符串 使用 POST 方法,发送指定字符串。
--post-file=文件 使用 POST 方法,发送指定文件中的内容。

HTTPS (SSL) 选项:
--sslcertfile=文件 可选的客户段端证书。
--sslcertkey=密钥文件 对此证书可选的“密钥文件”。
--egd-file=文件 EGD socket 文件名。
--sslcadir=目录 CA 散列表所在的目录。
--sslcafile=文件 包含 CA 的文件。
--sslcerttype=0/1 Client-Cert 类型 0=PEM (默认) / 1=ASN1 (DER)
--sslcheckcert=0/1 根据提供的 CA 检查服务器的证书
--sslprotocol=0-3 选择 SSL 协议;0=自动选择,
1=SSLv2 2=SSLv3 3=TLSv1

FTP 选项:
-nr, --dont-remove-listing 不删除“.listing”文件。
-g, --glob=on/off 设置是否展开有通配符的文件名。
--passive-ftp 使用“被动”传输模式。
--retr-symlinks 在递归模式中,下载链接所指示的文件(连至目录
则例外)。
递归下载:
-r, --recursive 递归下载。
-l, --level=数字 最大递归深度(inf 或 0 表示无限)。
--delete-after 删除下载后的文件。
-k, --convert-links 将绝对链接转换为相对链接。
-K, --backup-converted 转换文件 X 前先将其备份为 X.orig。
-m, --mirror 等效于 -r -N -l inf -nr 的选项。
-p, --page-requisites 下载所有显示完整网页所需的文件,例如图像。
--strict-comments 打开对 HTML 备注的严格(SGML)处理选项。

递归下载时有关接受/拒绝的选项:
-A, --accept=列表 接受的文件样式列表,以逗号分隔。
-R, --reject=列表 排除的文件样式列表,以逗号分隔。
-D, --domains=列表 接受的域列表,以逗号分隔。
--exclude-domains=列表 排除的域列表,以逗号分隔。
--follow-ftp 跟随 HTML 文件中的 FTP 链接。
--follow-tags=列表 要跟随的 HTML 标记,以逗号分隔。
-G, --ignore-tags=列表 要忽略的 HTML 标记,以逗号分隔。
-H, --span-hosts 递归时可进入其它主机。
-L, --relative 只跟随相对链接。
-I, --include-directories=列表 要下载的目录列表。
-X, --exclude-directories=列表 要排除的目录列表。
-np, --no-parent 不搜索上层目录

 

具体使用方法举例:
       wget http://1075625766.qzone.qq.comhttp://1075625766.qzone.qq.com 的当前网页下载到当前目录

       wget –r http://1075625766.qzone.qq.comhttp://1075625766.qzone.qq.com 整站递归地下载到本地当前目录

       wget –r –l 3 http://1075625766.qzone.qq.com 递归地将http://1075625766.qzone.qq.com下载3层
       wget –r –x http://1075625766.qzone.qq.com 按照http://1075625766.qzone.qq.com 原有的目录结构递归整站下载

       wget –c http://1075625766.qzone.qq.com 断点续传,即使下载中断了,wget还会接着重试连接,接着下载

       wget –c –t 100 http://1075625766.qzone.qq.com 断点续传,通过-t 参数指定重试次数(在被中断的情况下)(-t 0 表示重试无数次)

       wget –c –T 100 http://1075625766.qzone.qq.com 断点续传,在下载被中断后100秒内没连接上,就算下载超时,结束此次下载

       wget –i leowang.txt 批量下载,即将把需要下载的网址写在一个文档里,一个以行。这样就可以批量下载了

       wget –r –np http://1075625766.qzone.qq.com 不遍历父目录,将http://1075625766.qzone.qq.com 递归地下载

       wget –r –nd http://1075625766.qzone.qq.com 递归地、不按照原有的目录结构将http://1075625766.qzone.qq.com 下载

       wget -r --accept=rpm http://1075625766.qzone.qq.comhttp://1075625766.qzone.qq.com 网站中的rpm格式的文件下载

       wget –r --reject=iso http://1075625766.qzone.qq.comhttp://1075625766.qzone.qq.com网站中文件格式非iso的下载

       wget --http-user=USERNAME --http-password=PASSWORD http://1075625766.qzone.qq.com 通过网站用户名称和密码下载

eg:wget -c --http-user=download --http-passwd=123456 http://www.ipmotor.com/quarkmail/6.0-STD/qm-rhel4-6.0S-070601.tgz

 

知识点三、

邮件发送

mail -s "domain info" james.wang@ebizanywhere.net < $resultfile

 

系统收到邮件都会保存在“/var/spool/mail/[linux用户名]”文件中。
在linux中输入mail,就进行了收件箱,并显示二十封邮件列表。

此时命令提示符为"&"
unread 标记为未读邮件
h|headers 显示当前的邮件列表
l|list 显示当前支持的命令列表
?|help 显示多个查看邮件列表的命令参数用法
d 删除当前邮件,指针并下移。 d 1-100 删除第1到100封邮件
f|from 只显示当前邮件的简易信息。 f num 显示某一个邮件的简易信息
f|from num 指针移动到某一封邮件
z 显示刚进行收件箱时的后面二十封邮件列表
more|p|page 阅读当前指针所在的邮件内容 阅读时,按空格键就是翻页,按回车键就是下移一行
t|type|more|p|page num 阅读某一封邮件
n|next|{什么都不填} 阅读当前指针所在的下一封邮件内容
     阅读时,按空格键就是翻页,按回车键就是下移一行
v|visual 当前邮件进入纯文本编辑模式
n|next|{什么都不填} num 阅读某一封邮件
top 显示当前指针所在的邮件的邮件头
file|folder 显示系统邮件所在的文件,以及邮件总数等信息
x 退出mail命令平台,并不保存之前的操作,比如删除邮件
q 退出mail命令平台,保存之前的操作,比如删除已用d删除的邮件,已阅读邮件会转存到当前用户家目录下的mbox文件中。如果在mbox中删除文件才会彻底删除。
在linux文本命令平台输入 mail -f mbox,就可以看到当前目录下的mbox中的邮件了。
cd 改变当前所在文件夹的位置
写信时,连按两次Ctrl+C键则中断工作,不送此信件。
读信时,按一次Ctrl+C,退出阅读状态。
--------------------------------------
Linux邮件命令用法

1. 将文件当做电子邮 哪谌菟统?br> 语法:mail -s “主题”用户名@地址< 文件
例如:
mail -s “program” user < file.c 将file.c

当做mail的内容,送至user,主题为program。

2. 传送电子邮件给本系统用户
语法:mail 用户名

3. 传送电子邮件至外地用户
语法: mail 用户名@接受地址
.../usr/lib/sendmail -bp
......“Mail queue is empty” ......mail ....

例如:

test@mail.com
Subject : mail test
:
键入信文内容
: :
按下Ctrl+D 键或. 键结束正文。
连按两次Ctrl+C键则中断工作,不送此信件。
Cc( Carbon copy) : 复制一份正文,给其他的收信人。

4. 检查所传送的电子邮件是否送出,或滞留在邮件服务器中
语法:/usr/lib/sendmail -bp
若屏幕显示为“Mail queue is empty” 的信息,表示mail 已送出。
若为其他错误信息,表示电子邮件因故尚未送出。

 

 

1、将文件当作电子邮件内容送出:

   语法:mail –s “主题” user < file.c  //file.c当做mail的内容,发送给user用户。

2、传送本地用户电子邮件

语法:mail 用户名

3、在linux命令行下发送带附件的邮件

使用mutt写邮件可这样:
$ mutt -a <附件> -s <主题>
$ To: 输入收件人地址
启动vi写信,
写完信保存退出
:wq
然后 y 发信

4、传送电子邮件至外地用户

语法:mail 用户名@接受地址

Eg:mail 123@sina.com

Subjectmail text          //邮件名称

信件内容

Ctrl+D键或.键结束正文

连按两次Ctrl+C键中断工作

5、检测邮件是否发出:

#sendmail –bp

若屏幕显示”mail queue is empty”信息,表示mail已送出

6、邮件的查看

#mail          //出现& 在后台输入命令

Enter   //查看当前邮件

    //下一封邮件        //上一封邮件

d 数字  //删除它几号信件

s 文件名  //将信件保存为文件

r  //回信 q//退出

 

知识点四、

获取当前时间赋值给一个变量

curtime=date `’+%Y-%m-%d-%H:%M:%S‘`

 

编写一个shell脚本验证

exec.sh

/

#!/bin/sh
CURDATE=`date '+%Y-%m-%d'`
RESULTFILE=./info/${CURDATE}.domain.txt
MAIL_TITLE="用户统计信息--$CURDATE"
FILENAME=./all_people.cfg
 
./get_use_info.sh > $RESULTFILE
      
for a in $(cat all_people.cfg)
do   
    mail -s $MAIL_TITLE $a < $RESULTFILE
done

/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值