`
gary0416
  • 浏览: 333486 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

web服务器监控(二)

阅读更多

接上文,工具类源码

 

ConsoleUtil

 

package com.gary.util;

/**
 * 控制台工具
 * @author gary
 */
public class ConsoleUtil {
    private static LimitQueue<String> queue = new LimitQueue<String>(35);
    
    /**
     * 获取控制台文本
     * @return
     */
    public static String get(){
    	StringBuilder sb = new StringBuilder();
    	for (String str : queue) {
            sb.append(str);
            sb.append("\n");
        }
        return sb.toString();
    }
    
    /**
     * 输出到控制台
     * @param str
     */
    public static void write(String str){
    	queue.offer(TimeUtil.getCurrentTime() + ": " + str);
    }
    
    /**
     * 清空控制台
     */
    public static void clear(){
    	queue.clear();
    }
}

 LimitQueue

 

package com.gary.util;

import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Queue;

/**
 * 固定长度队列
 * @author gary
 *
 */
public class LimitQueue<E> implements Queue<E> {
    //队列长度
    private int limit;
    Queue<E> queue = new LinkedList<E>();

    public LimitQueue(int limit) {
        this.limit = limit;
    }

    /**
     * 入队
     * @param e
     */
    @Override
    public boolean offer(E e) {
        if (queue.size() >= limit) {
            //如果超出长度,入队时,先出队
            queue.poll();
        }
        return queue.offer(e);
    }

    /**
     * 出队
     * @return
     */
    @Override
    public E poll() {
        return queue.poll();
    }

    /**
     * 获取队列
     * @return
     */
    public Queue<E> getQueue() {
        return queue;
    }

    /**
     * 获取限制大小
     * @return
     */
    public int getLimit() {
        return limit;
    }

    @Override
    public boolean add(E e) {
        return queue.add(e);
    }

    @Override
    public E element() {
        return queue.element();
    }

    @Override
    public E peek() {
        return queue.peek();
    }

    @Override
    public boolean isEmpty() {
        return queue.size() == 0 ? true : false;
    }

    @Override
    public int size() {
        return queue.size();
    }

    @Override
    public E remove() {
        return queue.remove();
    }

    @Override
    public boolean addAll(Collection<? extends E> c) {
        return queue.addAll(c);
    }

    @Override
    public void clear() {
        queue.clear();
    }

    @Override
    public boolean contains(Object o) {
        return queue.contains(o);
    }

    @Override
    public boolean containsAll(Collection<?> c) {
        return queue.containsAll(c);
    }

    @Override
    public Iterator<E> iterator() {
        return queue.iterator();
    }

    @Override
    public boolean remove(Object o) {
        return queue.remove(o);
    }

    @Override
    public boolean removeAll(Collection<?> c) {
        return queue.removeAll(c);
    }

    @Override
    public boolean retainAll(Collection<?> c) {
        return queue.retainAll(c);
    }

    @Override
    public Object[] toArray() {
        return queue.toArray();
    }

    @Override
    public <T> T[] toArray(T[] a) {
        return queue.toArray(a);
    }
}

 MailAutherticator

 

package com.gary.util;

import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;

/**
 * javamail身份验证
 * @author gary
 */
public class MailAutherticator extends Authenticator {

	private String userName;
	private String password;
	

    public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public MailAutherticator(String userName, String password) {
		super();
		this.userName = userName;
		this.password = password;
	}

	@Override
    public PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(userName, password);
    }
}

 MailUtil

 

package com.gary.util;

import java.util.Date;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.Multipart;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;

/**
 * 发送E-mail
 * @author gary
 * @version 1.0
 */
public class MailUtil {

    private String smtp = null;
    private String userName = null;
    private String password = null;

    public MailUtil(String smtp, String userName, String password) {
        this.smtp = smtp;
        this.userName = userName;
        this.password = password;
    }
    
    /**
     * 发送简单邮件
     * @param subject
     * @param from
     * @param to
     * @param content
     * @throws Exception 
     */
    public void sendSimpleMail(String from, String[] to, String subject, String content) throws Exception {
        sendMail(subject, from , to, content, null, "text/html;charset=utf-8");
    }

    /**
     * 发送邮件
     * 
     * @param subject
     * 				邮件主题
     * @param from
     * 				邮件发送人
     * 				"a@qq.com"
     * @param to
     * 				邮件接收人(数组),可以有多个接收人即群发
     *				String sendTo[] = { "b@qq.com", "c@qq.com" };
     * @param text	
     * 				邮件内容
     * @param fileNames
     * 				附件详细地址及重命名
     * 				String fileNames[] = { "C:\\a.txt,a.txt", "C:\\b.txt,b.txt" };
     * @param mimeType
     * 				文本类型,如:"text/html;charset=utf-8"
     * @throws Exception
     */
    @SuppressWarnings("static-access")
    public void sendMail(String subject, String from, String[] to, String text, String[] fileNames,
            String mimeType) throws Exception {
        //邮件会话对象
        javax.mail.Session mailSession;
        //MIME邮件对象 
        javax.mail.internet.MimeMessage mimeMsg;

        //获得系统属性对象 
        Properties props = java.lang.System.getProperties();
        //设置SMTP主机
        props.put("mail.smtp.host", smtp);
        //是否到服务器用户名和密码验证
        props.put("mail.smtp.auth", "true");
        //到服务器验证发送的用户名和密码是否正确 
        MailAutherticator myEmailAuther = new MailAutherticator(userName, password);
        //设置邮件会话,将认证信息放进了Session的创建参数里
        mailSession = javax.mail.Session.getInstance(props, (Authenticator) myEmailAuther);
        //设置传输协议 
        javax.mail.Transport transport = mailSession.getTransport("smtp");
        //设置from、to等信息 
        mimeMsg = new javax.mail.internet.MimeMessage(mailSession);
        if (!(from == null || from.equals(""))) {
            InternetAddress sentFrom = new InternetAddress(from);
            //设置发送人地址 
            mimeMsg.setFrom(sentFrom);
        }

        InternetAddress[] sendTo = new InternetAddress[to.length];
        for (int i = 0; i < to.length; i++) {
            sendTo[i] = new InternetAddress(to[i]);
        }

        mimeMsg.setRecipients(javax.mail.internet.MimeMessage.RecipientType.TO, sendTo);
        mimeMsg.setSubject(subject, "utf-8");

        MimeBodyPart messageBodyPart1 = new MimeBodyPart();
        messageBodyPart1.setContent(text, mimeType);

        //附件传输格式 
        Multipart multipart = new MimeMultipart();
        multipart.addBodyPart(messageBodyPart1);

        if (fileNames != null) {
            for (int i = 0; i < fileNames.length; i++) {
                MimeBodyPart messageBodyPart2 = new MimeBodyPart();
                //选择出每一个附件名 
                String fileName = fileNames[i].split(",")[0];
                String displayName = fileNames[i].split(",")[1];
                //得到数据源 
                FileDataSource fds = new FileDataSource(fileName);
                //得到附件本身并至入BodyPart 
                messageBodyPart2.setDataHandler(new DataHandler(fds));
                //得到文件名同样至入BodyPart 
                //messageBodyPart2.setFileName(displayname); 
                // messageBodyPart2.setFileName(fds.getName()); 
                messageBodyPart2.setFileName(MimeUtility.encodeText(displayName));
                multipart.addBodyPart(messageBodyPart2);
            }
        }
        mimeMsg.setContent(multipart);
        //设置信件头的发送日期 
        mimeMsg.setSentDate(new Date());
        mimeMsg.saveChanges();
        //发送邮件 
        transport.send(mimeMsg);
        transport.close();
    }

}

 StringUtil

 

package com.gary.util;

/**
 * 字符串工具
 * @author gary
 */
public class StringUtil {

    /**
     * 不为空
     * @param string
     */
    public static boolean isNotBlank(String str) {
        return !isBlank(str);
    }

    /**
     * 为空
     * @param string
     */
    public static boolean isBlank(String str) {
        int strLen;
        if ((str == null) || ((strLen = str.length()) == 0)) {
            return true;
        }
        for (int i = 0; i < strLen; ++i) {
            if (!Character.isWhitespace(str.charAt(i))) {
                return false;
            }
        }
        return true;
    }
}

 SwingUtil

 

package com.gary.util;

import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JDialog;

/**
 * Swing工具
 * @author gary
 */
public class SwingUtil {

    /**
     * 居中显示Dialog
     */
    public static void show(JDialog jd) {
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        Dimension frameSize = jd.getSize();
        if (frameSize.height > screenSize.height) {
            frameSize.height = screenSize.height;
        }
        if (frameSize.width > screenSize.width) {
            frameSize.width = screenSize.width;
        }
        jd.setLocation((screenSize.width - frameSize.width) / 2,
                (screenSize.height - frameSize.height) / 2);
        jd.setModal(true);
        jd.setVisible(true);
    }
    
}

 TimeUtil

 

package com.gary.util;

import java.util.Calendar;

/**
 * 时间工具
 * @author gary
 *
 */
public class TimeUtil {
    /**
     * 获取当前时间
     * @return
     */
    public static String getCurrentTime(){
    	return new java.sql.Timestamp(new java.util.Date().getTime()).toString();
    }
    
    
    /**
     * 返回星期几
     * @author gary
     * @return
     * 		1-星期日
     * 		2-星期一
     * 		3-星期二
     * 		4-星期三
     * 		5-星期四
     * 		6-星期五
     * 		7-星期六
     */
    public static int getDayOfWeek(){
    	Calendar cal = Calendar.getInstance();
    	return cal.get(Calendar.DAY_OF_WEEK);
    }
    
}

 URLUtil

 

package com.gary.util;

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

/**
 * URL工具
 * @author gary
 *
 */
public class URLUtil {

    /**
     * 连接
     * @param urlString
     * @throws MalformedURLException
     * @throws IOException 
     */
    public void connect(String urlString) throws MalformedURLException, IOException {
        URL url = new URL(urlString);
        URLConnection c = url.openConnection();
        c.connect();
    }
}
分享到:
评论

相关推荐

    web服务器监控(一)

    在IT行业中,Web服务器监控是确保线上服务稳定性和性能的关键环节。本文将深入探讨"Web服务器监控(一)"这一主题,结合源码分析和实用工具介绍,帮助你更好地理解和掌握这个领域的重要知识点。 首先,我们要了解什么...

    WEB服务器运行状况监控

    搜藏了很久的web服务器监控程序,设定每隔一段时间访问一下网站,如果访问不到,就会发出报警。网站管理很有用的

    WEB服务器运行状况监控 v2.1

    一、服务器监控的重要性 1. 预防故障:通过持续监控,能及时发现服务器潜在的性能瓶颈,避免因资源耗尽而导致的服务中断。 2. 性能优化:实时查看服务器负载,可以调整系统配置,提高服务器处理能力,提升用户体验...

    web服务器监控器

    "Web服务器监控器"是一款专为管理和维护网络服务器设计的重要工具。它提供了实时监控、预警以及远程重启等关键功能,确保服务器的稳定运行并及时处理可能出现的问题。在现代的IT环境中,服务器监控对于企业的运营至...

    Falcon-Web服务器文件监控平台 0.1.1.zip

    Falcon是一款基于inotify-tools开发的Web服务器文件监控平台,能够实时监控Web目录文件变化(新增,修改,删除),判断文件内容是否包含恶意代码,自动隔离常见Webshell,保证Web目录文件安全。 Falcon 0.1.1 更新...

    WEB服务器运行状况监控V1.6

    【WEB服务器运行状况监控V1.6】是一款专为管理员设计的高效且免费的Web服务器监控软件,旨在确保Web服务的稳定性和安全性。这款工具具备防止病毒篡改主页以及自动恢复主页的功能,对于IIS(Internet Information ...

    JavaMelody JAVA Web项目服务器性能监控工具

    JavaMelody是一款强大的JAVA Web项目服务器性能监控工具,它能够实时、全面地监控应用程序的运行状态,帮助开发者和运维人员了解系统性能瓶颈,及时发现并解决问题。通过在Java Web应用中简单集成,JavaMelody就能...

    基于嵌入式Web服务器的远程视频监控系统

    基于嵌入式Web服务器的远程视频监控系统,希望对家加有所帮助

    公司要求实时监控服务器,写个Web的监控系统

    综上所述,构建一个Web服务器监控系统涉及到多方面的技术与知识,包括Web开发、服务器监控、数据处理、安全策略以及报警机制。实现这样的系统需要对整个IT基础设施有深入的理解,并具备良好的编程和项目管理能力。

    服务器监控程序部署

    二、服务器监控的主要内容 1. 系统资源:CPU使用率、内存占用、磁盘I/O、网络带宽等。 2. 服务状态:HTTP、FTP、SMTP、数据库等服务的运行状况。 3. 日志分析:收集和分析系统日志,发现异常行为。 4. 安全监控:...

    Falcon-Web服务器文件监控平台 v0.1.1.zip

    Falcon是一款基于inotify-tools开发的Web服务器文件监控平台,能够实时监控Web目录文件变化(新增,修改,删除),判断文件内容是否包含恶意代码,自动隔离常见Webshell,保证Web目录文件安全。   Falcon 0.1.1 ...

    基于嵌入式Linux和Web服务器的网络视频监控系统.pdf

    基于嵌入式Linux和Web服务器的网络视频监控系统.pdf 标题:“基于嵌入式Linux和Web服务器的网络视频监控系统” 描述:“基于嵌入式Linux和Web服务器的网络视频监控系统” 标签:“Linux操作系统、系统开发、参考...

    WEB服务器安装配置完全手册

    二、Apache Web服务器安装 1. 下载Apache:访问Apache官方网站,根据操作系统(如Windows、Linux、macOS)下载合适的版本。 2. 安装:在Windows上,通常运行安装程序;在Linux上,使用包管理器(如apt-get或yum)...

    Linux集群环境下监控Web服务器的Shell脚本设计.pdf

    Linux集群环境下监控Web服务器的Shell脚本设计 本文主要讨论了Linux集群环境下监控Web服务器的Shell脚本设计。文章首先介绍了守护进程和Shell的基本概念及其特性,然后针对Linux集群下如何有效管理多台服务器,以...

    Web服务器安全设置

    在当今互联网安全日益受到重视的背景下,Web服务器作为信息发布和...随着技术的不断进步和网络环境的不断变化,Web服务器安全将是一个持续的、动态的过程,需要不断地监控、评估和更新安全措施,以应对新的安全威胁。

    基于Web的远程监控系统(源代码)

    该系统的主要组成部分包括前端Web界面、后端服务器处理模块以及与监控设备的通信接口。前端通常使用HTML、CSS和JavaScript构建,为用户提供友好的交互界面,用户可以通过浏览器访问并进行操作。后端服务器处理用户的...

Global site tag (gtag.js) - Google Analytics