expect工具的使用

一、介绍

我们通过Shell可以实现简单的控制流功能,如:循环、判断等,但是对于需要交互的场合则必须通过人工来干预。

有时候我们可能会需要实现和交互程序如telnet服务器等进行交互的功能,一般来说这些输入都需要手工输入进行的,而expect则可以根据程序的提示模拟标准输入提供给程序需要的输入来实现交互程序执行。

所以,这时候只要知道对方机器的账号和密码就可以通过expect脚本实现登录和执行远程命令。

- 阅读剩余部分 -

patch和diff命令详解

一、简介

Linux patch命令用于修补文件。

说到patch命令,就不得不提到diff命令,也就是制作patch的必要工具。

diff命令,在制作patch文件的时候,基本上只需要使用到diff -Nau 这个参数,它比较给定的两个文件的不同。如果比较的是文件夹,还要加上-r参数,如果使用“-”代替“文件”参数,则要比较的内容将来自标准输入。

diff命令是以逐行的方式,比较文本文件的异同处。如果该命令指定进行目录的比较,则将会比较该目录中具有相同文件名的文件,而不会对其子目录文件进行任何比较操作。

patch指令让用户利用设置修补文件的方式,修改,更新原始文件。倘若一次仅修改一个文件,可直接在指令列中下达指令依序执行。如果配合修补文件的方式则能一次修补大批文件,这也是Linux系统核心的升级方法之一。

- 阅读剩余部分 -

wget命令详解

wget是Linux系统上的一个下载工具。对于Linux用户是必不可少的工具,尤其对于网络管理员,经常要下载一些软件或从远程服务器恢复备份到本地服务器。wget工具体积小但功能完善,它支持断点下载功能,同时支持FTP和HTTP下载方式,支持代理服务器和设置起来方便简单。

wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。

命令格式:

wget [参数列表] [目标软件、网页的网址]

长选项所必须的参数在使用短选项时也是必须的。

- 阅读剩余部分 -

将恶意登陆的IP加入防火墙的脚本

一、前言

记得刚入手VPS的时候,Linux小白一个,啥都不懂,但是却虎头虎脑的就搭建了一个邮件服务器,用来注册各种账号,国内的邮箱服务需要绑定手机号,觉得很烦。

就这样过了几个月,某一天心血来潮(刚好学到日志这个东西),于是下意识的看了一下服务器的各种日志。我去,什么情况,这邮件服务的日志加起来都快1G了。

当时看到这么大的文件,我一脸茫然,只是惊叹这个日志记录的挺勤快的,却还没意识到什么就不管了。但事后经过不断的学习后,我再回头想起这件事,立马就对自己无语了,当时我这一共才发几封邮件啊,日志不可能记录这么多的,绝对有猫腻的。

- 阅读剩余部分 -

Python发邮件脚本

收集的一个Python发邮件脚本,实现在不搭建邮件服务器的环境下,通过调用其它邮箱发送邮件。

vim mail.py

内容如下:

#!/usr/bin/env python
#-*- coding: UTF-8 -*-

import os,sys
reload(sys)
sys.setdefaultencoding('utf8')
import getopt
import smtplib
from email.MIMEText import MIMEText
from email.MIMEMultipart import MIMEMultipart
from subprocess import *
def sendqqmail(username,password,mailfrom,mailto,subject,content):
    gserver = '邮件服务器'
    gport = 25
    try:
        msg = MIMEText(unicode(content).encode('utf-8'))
        msg['from'] = mailfrom
        msg['to'] = mailto
        msg['Reply-To'] = mailfrom
        msg['Subject'] = subject
        smtp = smtplib.SMTP(gserver, gport)
        smtp.set_debuglevel(0)
        smtp.ehlo()
        smtp.starttls()
        smtp.login(username,password)
        smtp.sendmail(mailfrom, mailto, msg.as_string())
        smtp.close()
    except Exception,err:
        print "Send mail failed. Error: %s" % err
def main():
    to=sys.argv[1]
    subject=sys.argv[2]
    content=sys.argv[3]
    sendqqmail('邮箱账户','邮箱密码或授权码','邮箱账户',to,subject,content)

if __name__ == "__main__":
    main()

基本格式:

chmod +x mail.py
./mail.py 收件人 邮件标题 邮件内容

FTP服务器(vsftpd和pure-ftpd)

FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。FTP是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。简单地说,支持FTP协议的服务器就是FTP服务器。
FTP方便传输数据,所以个人用户很多,但在企业里用的越来越少,因为FTP是有一定的安全隐患的。
本次使用的是vsftpd、pure-ftpd这两款软件。

安装环境:CentOS 7

- 阅读剩余部分 -