Linux | zabbix | 实战篇(一步步带你到邮件报警)

一、本章环境:


  • Zabbix3.4.8服务器OS:Centos7.6x86_64
  • 邮件服务器OS:Windows10x86_64
  • 邮件客户端OS:Windows10x86_64
  • zabbix客户端:OS:Centos7.6x86_64

二、搭建zabbix监控


搭建zabbix可以参考我的这篇文章:https://blog.csdn.net/Kangshuo2471781030/article/details/79261753 (此文章为3.2版本)本章使用zabbix4.0.5版本,由于版本不同的问题,在配置方面也会有不同之处,那么同时可以参考以下内网一键安装zabbix脚本来完成此搭建。

#!/bin/bash#Data: Fri May 4 09:37:26 CST 2018#Founder: <kang-blxh>#describe: One button installation zabbix3.4.8#Edition: V1#OS: Centos7.6x86_64. /etc/init.d/functionsMMM=`rpm -qa | grep mariadb`Route=/usr/local/src#################################################################mount iamges!################################################################function MOUNT(){rm -rf /etc/yum.repos.d/*mount /usr/local/src/CentOS-7-x86_64-DVD-1810.iso /mntcat <<kang > /etc/yum.repos.d/centos.repo[centos]name=centosbaseurl=file:///mntenabled=1gpgcheck=0kangsleep 3yum install -y make apr* autoconf automake curl-devel gcc gcc-c++ openssl openssl-devel perl compat* mpfr cpp glibc libgompsleep 3yum install -y libstdc++-devel keyutils-libs-devel libcom_err-devel libsepol-devel libselinux-devel krb5-devel zlib-devel libXpm*sleep 3yum install -y freetype libjpeg* libpng* libtool* libxml2 libxml2-devel patch libcurl-devel bzip2-devel freetype-devel2sleep 3yum install -y freetype-devel net-snmp-devel freetype-devel net-snmp-devel net-snmp net-snmp-devel curl-develsleep 3yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel OpenIPMI-devel libssh2-devel}#################################################################Install MySQL8.0.15################################################################function Mysql(){if [ -n $MMM ];thenrpm -e mariadb-libs --nodeps 2&>/dev/nullelseecho "Mariadb  error!!!"return 1fitar zxf $Route/mysql-8.0.15-el7-x86_64.tar.gz && {mv $Route/mysql-8.0.15-el7-x86_64 /usr/local/mysql && \cd /usr/local/mysql/ && mkdir data  && echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profileif [ "$?" -eq 0 ];thensource /etc/profile && groupadd mysql && useradd -r -g mysql -s /bin/false mysqlelseecho "Mysql error !!!"return 1fi}cat << kang > /etc/my.cnf[client]socket=/usr/local/mysql/mysql.sock[mysqld]basedir=/usr/local/mysqldatadir=/usr/local/mysql/datapid-file=/usr/local/mysql/data/mysqld.pidsocket=/usr/local/mysql/mysql.socklog_error=/usr/local/mysql/data/mysql.errkangif [ -f /etc/my.cnf ];thenchmod 750 data/ && chown -R mysql . && chgrp -R mysql . && bin/mysqld --initialize --user=mysql && cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld && service mysqld startelseecho "/etc/my.cnf error !!!"return 1fi########################################################################Mysql password install########################################################################ln -s /usr/local/mysql/bin/mysql /usr/local/sbin#ln -s /usr/local/mysql/bin/mysqladmin /usr/local/sbinPASS=`cat /usr/local/mysql/data/mysql.err | grep password | awk '{print $11}'`mysqladmin -uroot -p${PASS} password pwd123 &> /dev/nullif [ "$?" -eq 0 ];thenecho "Mysql password is ok!"elseecho "Mysql password is not ok!!!"return 1fi}########################################################################Install Nginx1.15.9#######################################################################function Nginx(){cd $Route && {tar zxf $Route/nginx-1.15.9.tar.gz && cd nginx-1.15.9/ && \./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-http_ssl_module --with-http_gzip_static_module --user=nginx --group=nginx && make && make installuseradd -M -s /sbin/nologin nginx}if [ "$?" -eq 0 ];thenln -s /usr/local/nginx/sbin/nginx /usr/local/sbin && /usr/local/nginx/sbin/nginxelseecho "Nginx Install error!!!"exit 1fi}#########################################################################Intsall LIB.so########################################################################function Lib(){cd $Route && {tar zxf libevent-2.1.8-stable.tar.gz && cd libevent-2.1.8-stable && ./configure && make && make installif [ "$?" -eq 0 ];thenecho "libevent install is ok!!!"elseecho "libevent install is not ok!!!"return 1fi}cd $Route && {tar zxf libmcrypt-2.5.7.tar.gz && cd libmcrypt-2.5.7 && ./configure && make && make installif [ "$?" -eq 0 ];thenecho "libmcrypt-2.5.7 install is ok!!!"elseecho "libmcrypt-2.5.7 install is not ok!!!"return 1fi}cd $Route && {tar zxf fping-4.2.tar.gz && cd fping-4.2/ && ./configure && make && make installif [ "$?" -eq 0 ];thenecho "fping-4.2.tar.gz install is ok!!!"elseecho "fping-4.2.tar.gz install is not ok!!!"return 1fi}}###########################################################################Install php5.6.25##########################################################################function php(){cd $Route && {tar zxf php-5.6.25.tar.gz && cd php-5.6.25 && \./configure --prefix=/usr/local/php5.6.25 --with-config-file-path=/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/usr/local/mysql/mysql.sock --with-gd --with-iconv --with-libxml-dir=/usr --with-mhash --with-mcrypt --with-config-file-scan-dir=/etc/php.d --with-bz2 --with-zlib --with-freetype-dir --with-png-dir --with-jpeg-dir --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curlif [ "$?" -eq 0 ];thenmake && make installelseecho "php install ./configure error!!!!"return 1fi}cd $Route/php-5.6.25 && {cp php.ini-production /etc/php.ini && cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm && chmod +x /etc/init.d/php-fpm && chkconfig --add php-fpm && chkconfig php-fpm on}if [ "$?" -eq 0 ];thencp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.confelseecho "php Environmental Science ERROR!!!"return 1fiif [ ! -d /usr/local/php5.6/etc/php-fpm.conf ]thensed -i 's#;pid = run/php-fpm.pid#pid = run/php-fpm.pid#g' /usr/local/php5.6/etc/php-fpm.confsed -i 's/listen = 127.0.0.1:9000/listen = 127.0.0.1:9000/g' /usr/local/php5.6/etc/php-fpm.confsed -i 's/pm.max_children = 5/pm.max_children = 300/g' /usr/local/php5.6/etc/php-fpm.confsed -i 's/pm.start_servers = 2/pm.start_servers = 20/g' /usr/local/php5.6/etc/php-fpm.confsed -i 's/pm.min_spare_servers = 1/pm.min_spare_servers = 20/g' /usr/local/php5.6/etc/php-fpm.confsed -i 's/pm.max_spare_servers = 3/pm.max_spare_servers = 100/g' /usr/local/php5.6/etc/php-fpm.confsed -i 's/user = nobody/user = nginx/g' /usr/local/php5.6/etc/php-fpm.confsed -i 's/group = nobody/group = nginx/g' /usr/local/php5.6/etc/php-fpm.confelseecho "php-fpm.conf ERROR!!!"return 1fiif [ $? -eq 0 ]thensystemctl start php-fpm && echo "php install is ok!!!"elseecho "php install is not ok!!!"return 1fi}###################################################################################Install nginx && php config!##################################################################################function nginx-php(){if [ -f /usr/local/nginx/conf/nginx.conf ];thensed -i 's/index index.html index.htm;/index index.php index.html index.htm;/g' /usr/local/nginx/conf/nginx.confsed -i 's/# root html;/ root html;/g' /usr/local/nginx/conf/nginx.confsed -i 's/# fastcgi_pass 127.0.0.1:9000;/ fastcgi_pass 127.0.0.1:9000;/g' /usr/local/nginx/conf/nginx.confsed -i 's/# fastcgi_index index.php;/ fastcgi_index index.php;/g' /usr/local/nginx/conf/nginx.confsed -i 's*# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;* fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;*g' /usr/local/nginx/conf/nginx.confsed -i 's/# include fastcgi_params;/ include fastcgi.conf;/g' /usr/local/nginx/conf/nginx.confsed -i '71d' /usr/local/nginx/conf/nginx.conf && sed -i 'N;70a}' /usr/local/nginx/conf/nginx.confsed -i '65d' /usr/local/nginx/conf/nginx.conf && sed -i 'N;64alocation ~ \\.php$ {' /usr/local/nginx/conf/nginx.confelseecho "Nginx && php ERROR!!!"return 1fitouch /usr/local/nginx/html/kang.phpcat << kang >/usr/local/nginx/html/kang.php<?phpphpinfo();?>kang/usr/local/nginx/sbin/nginx -s reloadif [ "$?" -eq 0 ];thenecho "LNMP is ok! Please Visit http://IP/kang.php"elseecho "LNMP is not ok!!!"return 1fi}#############################################################################Install zabbix4.0.5############################################################################function zabbix(){groupadd zabbix && useradd -g zabbix zabbixsed -i 's/;date.timezone =/date.timezone = PRC/g' /etc/php.inised -i 's/expose_php = On/expose_php = Off/g' /etc/php.inised -i 's/short_open_tag = Off/short_open_tag = On/g' /etc/php.inised -i 's/post_max_size = 8M/post_max_size = 16M/g' /etc/php.inised -i 's/max_execution_time = 30/max_execution_time = 300/g' /etc/php.inised -i 's/max_input_time = 60/max_input_time = 300/g' /etc/php.inised -i 's/;always_populate_raw_post_data = -1/always_populate_raw_post_data = -1/g' /etc/php.inised -i 's/;mbstring.func_overload = 0/mbstring.func_overload = 0/g' /etc/php.inicd $Route && {tar zxf zabbix-4.0.5.tar.gz && cd zabbix-4.0.5 && \./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurlif [ "$?" -eq 0 ];thenmake && make installelseecho "zabbix install error !!!"return 1fi}ln -s /usr/local/zabbix/bin/* /usr/local/bin/ln -s /usr/local/zabbix/sbin/* /usr/local/sbin//usr/local/mysql/bin/mysql -uroot -p111111 -e "create database zabbix character set utf8;"/usr/local/mysql/bin/mysql -uroot -p111111 -e "grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';"if [ "$?" -eq 0 ]thenecho "user zabbix mysql is ok!!!"elseecho "user zabbix mysql is not ok!!!"return 1ficd $Route/zabbix-4.0.5/database/mysql && {/usr/local/mysql/bin/mysql -uzabbix -pzabbix -hlocalhost zabbix < schema.sql/usr/local/mysql/bin/mysql -uzabbix -pzabbix -hlocalhost zabbix < images.sql/usr/local/mysql/bin/mysql -uzabbix -pzabbix -hlocalhost zabbix < data.sql}if [ "$?" -eq 0 ]thenecho "zabbix is mysql database is ok!"elseecho "zabbix is mysql database is not ok!"fised -i 's$LogFile=/tmp/zabbix_server.log$LogFile=/usr/local/zabbix/logs/zabbix_server.log$g' /usr/local/zabbix/etc/zabbix_server.confsed -i 's$# PidFile=/tmp/zabbix_server.pid$PidFile=/usr/local/zabbix/logs/zabbix_server.pid$g' /usr/local/zabbix/etc/zabbix_server.confsed -i 's/# DBHost=localhost/DBHost=localhost/g' /usr/local/zabbix/etc/zabbix_server.confsed -i 's/# DBPassword=/DBPassword=zabbix/g' /usr/local/zabbix/etc/zabbix_server.confsed -i 's/# DBPort=3306/DBPort=3306/g' /usr/local/zabbix/etc/zabbix_server.confsed -i 's$# FpingLocation=/usr/sbin/fping$FpingLocation=/usr/sbin/fping$g' /usr/local/zabbix/etc/zabbix_server.confsed -i 's$# DBSocket=/tmp/mysql.sock$DBSocket=/usr/local/mysql/mysql.sock$g' /usr/local/zabbix/etc/zabbix_server.confmkdir -p /usr/local/zabbix/logs && chown -R zabbix:zabbix /usr/local/zabbix/cat << kang >/etc/ld.so.confinclude ld.so.conf.d/*.conf/usr/local/mysql/lib/usr/local/libkang/usr/local/nginx/sbin/nginx -s reload && /etc/init.d/php-fpm restartif [ "$?" -eq 0 ];thenecho "zabbix && nginx && php restart is ok!!!"elseecho "zabbix && nginx && php restart is not ok!!!"return 1ficd $Route/zabbix-4.0.5/ && {cp misc/init.d/fedora/core/zabbix_server /etc/rc.d/init.d/zabbix_servercp misc/init.d/fedora/core/zabbix_agentd /etc/rc.d/init.d/zabbix_agentdchmod +x /etc/rc.d/init.d/zabbix_serverchmod +x /etc/rc.d/init.d/zabbix_agentdchkconfig --add zabbix_serverchkconfig --add zabbix_agentdchkconfig zabbix_server onchkconfig zabbix_agentd onsed -i 's$BASEDIR=/usr/local$BASEDIR=/usr/local/zabbix/$g' /etc/rc.d/init.d/zabbix_serversed -i 's*PIDFILE=/tmp/$BINARY_NAME.pid*PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid*g' /etc/rc.d/init.d/zabbix_serversed -i 's$BASEDIR=/usr/local$BASEDIR=/usr/local/zabbix/$g' /etc/rc.d/init.d/zabbix_agentdsed -i 's*PIDFILE=/tmp/$BINARY_NAME.pid*PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid*g' /etc/rc.d/init.d/zabbix_agentdldconfig && systemctl daemon-reload/etc/init.d/zabbix_agentd start &>/dev/null/etc/init.d/zabbix_server start &>/dev/null}if [ "$?" -eq 0 ];thenecho "zabbix Being configured....."elseecho "zabbix start is not ok!!!"fimkdir /usr/local/nginx/html/zabbix/if [ -d /usr/local/nginx/html/zabbix ];thencp -r $Route/zabbix-4.0.5/frontends/php/* /usr/local/nginx/html/zabbix/elseecho "zabbix mkdir error!!!"return 1fichown -R nginx:nginx /usr/local/nginx/html/zabbixif [ "$?" -eq 0 ];thenecho "zabbix install is ok pleses http://IP/zabbix"elseecho "zabbix install is not ok!!! error!"return 1fi}function main(){MOUNTMysqlNginxLibphpnginx-phpzabbix}main

可能会有疑问了,这个脚本怎么运行啊?我咋运行不起来呢?

解答:此脚本专门为:Centos7.6x86_64位操作系统编写的一键安装,并且为纯内网环境,所以打包,下载,本地yum源都需要软件提供,在运行此脚本之前需要上传5-6个安装包. 获取完包之后上传至->zabbix服务器/usr/local/src --> 解压如下:

2.1、运行脚本安装zabbix监控如下:

[root@bogon src]# source zabbix_install.sh

此时可以去抽根烟、躺会、看会电视、等待着结束。安装过程时间(10-15分钟)

2.2、脚本结束会有以下提示:

2.3、提示访问http://IP/zabbix 访问如下:

初始账号密码:admin---zabbix

到此刻-zabbix服务已经搭建完毕!

三、搭建邮件服务器


3.1、软件下载

下载软件安装包可以在:http://www.hmailserver.com/ 官网下载

安装该软件需要提供需要Microsoft .NET Framework Version 2.0支持,微软官方下载地址:

hs-3879http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5&displayLang=en

3.2、安装

设置管理控制台的密码

等待安装结束

当我们连接到管理控制台的时候需要输入之前此的密码(此处填写刚刚设置的密码)

如何汉化?

参考:https://www.hmailserver.org/viewtopic.php?f=5&t=13

汉化完成后如下:

若按照以上操作并没有汉化成功,请重启计算机

3.3、配置邮件服务器

先添加一个域

如果需要,可以更改一下限制,域使用的空间、邮件的最大尺寸、用户最大空间、用户数等等,比如,这里整个硬盘只有60G空间的话,每个用户1G,允许最大的邮件为30M,太大了对服务器的压力太大了,我们可以按如下图设置进行限制设定

接着我们要为用户创建帐号了,输入用户名、密码,保存,记得这里也要设置一下用户空间大小不超过1G就可以保存了,因为上面我们做好了限制.

在这里为了测试邮件能够正常发送 我建立两个账号

到目前为止,邮件服务器配置结束,接下来配置客户端

3.4、配置邮件客户端

邮件客户端,我们可以使用foxmail或者outlook等,这里我使用的是foxmail

foxmail官网:http://www.foxmail.com/ 下载即可(安装过程:略)

登录foxmail账号   yankai及zhangsan 测试邮件是否可以正常发送

192.168.1.120 是邮件服务器的IP地址(点击创建出现以下界面)

提示:zhangsan用户的邮箱和以上设置是一样的 这里不做演示

3.5、测试邮件是否能够正常通信

3.5.1、测试zhangsan发送邮件---->yankai@aab.cn 邮箱账号

3.5.2、使用yankai邮箱账号测试是否收到邮件

到目前为止内网邮件服务器搭建完毕!

四、安装zabbix客户端


zabbix客户端的安装可以参考:https://blog.csdn.net/qq_39591494/article/details/78983861 此文章。

或者可以使用以上脚本中的zabbix-agent片段来运行,在此处不做演示!

五、监控一台主机


5.1、添加主机

提示:本章不会做太详细的配置监控说明,可以参考:https://blog.csdn.net/qq_39591494/article/details/80504256 (详细配置说明文章)

5.2、配置监控web服务若状态码非200,则触发灾难触发器

5.3、配置web场景监控zabbix_agent_webserver(配置过程:略)

https://blog.csdn.net/qq_39591494/article/details/80504256 (详细配置说明文章)

5.4、为了方便测试配置web场景触发器当最新的状态码==200时触发灾难警告!!!(配置过程:略)

https://blog.csdn.net/qq_39591494/article/details/80504256 (详细配置说明文章)

5.5、配置zabbix邮件报警设置,当zabbix-agent(webserver)== 200时 触发邮件报警

前言:在配置邮件报警的过程中可以参考我的这篇文章:https://blog.csdn.net/qq_39591494/article/details/80504256 (详细配置说明文章)

需要注意并严谨的配置如下:

5.5.1、动作配置

5.5.2、报警媒介类型配置

以上走25端口不走ssl 具体看邮件服务器配置~ 在用户名称下面有密码 直接输入邮箱密码就可以了。

其他的都可以参考:https://blog.csdn.net/qq_39591494/article/details/80504256

六、验证邮件报警


6.1、在以上设置的触发器条件中如果状态码==200 那么就触发灾难,那么在配置邮件的时候(如果有灾难发生-那么我就触发动作-那么在这里的动作就是email邮件报警)

流程:首先配置了web检测 ----->配置了触发器条件如果状态码==200则灾难 ---->配置了动作如果出现了灾难情况那么触发email-->通过email中的配置指向内网邮箱地址yankai@aab.cn

以上图片中显示已经发送成功 这时候需要去邮箱中查看邮件报警内容

此时我们可以正常的收到邮件。

七、问?

一、为什么会一直发送那么多邮件,为什么==200时仪表盘的问题闪的会那么多。

答:因为在配置web触发器中配置了多重,所以会有那么多。

2、用163邮箱和qq邮箱不行吗? 为什么还要自己搭建个邮件服务器?

答:用163和qq当然可以,只不过在很多大型公司都是内网如果要求使用zabbix去监控并发送邮件报警该怎么办?

3、你写的这个文章IP地址好乱,能不能写一下客户端服务端邮件服务器的IP地址?

答:可以

zabbix_server-IP地址:192.168.1.100

zabbix_agent-IP地址:192.168.1.110

邮件服务器IP地址:192.168.1.120

邮件客户端foxmail-IP地址:192.168.1.130

zabbix纯内网环境监控服务器发送邮件报警相关推荐

  1. 纯内网环境中k8s下onlyOffice启用https

    其实本来onlyOffice启用https是个很简单的事情,参照官网配置进行启用即可.但是由于网络环境的特殊性我们只能使用自签证书来部署所有的系统服务.所以整个过程还是比较多坑需要踩. 开始时我想以往 ...

  2. 运维之-如何在纯内网,无网络的环境中代理网络到外网!超全!手把手教!!

    前言 在外出实施和部署公司的软件和系统时,有的甲方要求时纯内网环境!不给开公网,但 是自己处理软件包之间的依赖又太麻烦(一个软件包有可能会有6,7个依赖.亲身经 验).所以找到了一套可以强制代理固定软 ...

  3. 22. 案例:在 proxy 内网环境下使用 percona 监控 mysql

    文章目录 22. 案例:在 proxy 内网环境下使用 percona 监控 mysql 22.1 安装 mysql 22.2 安装 percona 22.3 安装 agent 22.4 配置 age ...

  4. 内网环境部署zabbix5.0版本监控(一)

    内网环境部署zabbix5.0版本 首先需要在有网的环境先做一个yum源本地配置zabbix5.0.mysql5.7.epel源 Zabbix: rpm -Uvh https://repo.zabbi ...

  5. 内网环境下的横向移动总结

    前言 在内网渗透中,当攻击者获取到内网某台机器的控制权后,会以被攻陷的主机为跳板,通过收集域内凭证等各种方法,访问域内其他机器,进一步扩大资产范围.通过此类手段,攻击者最终可能获得域控制器的访问权限, ...

  6. 内网渗透-内网环境下的横向移动总结

    内网环境下的横向移动总结 文章目录 内网环境下的横向移动总结 前言 横向移动威胁 威胁密码安全 威胁主机安全 威胁信息安全 横向移动威胁的特点 利用psexec 利用psexec.exe工具 msf中 ...

  7. 内网环境下预览ArcGIS地图服务

    内网环境下预览ArcGIS地图服务 文章目录 内网环境下预览ArcGIS地图服务 1.背景 2.解决方案 2.1下载ArcGIS API for JavaScript 2.2本地部署ArcGIS AP ...

  8. Centos/Red Hat6.8 安装、配置、启动Gitlab (内网环境)心得分享

    文章目录 一.Gitlab下载 1. Gitlab官网下载 二.分析思路 2.1. 分析 2.2. 代码托管平台 2.3. 镜像站 二.Gitlab 重新加载配置异常 2.1. 异常现象 2.2. 分 ...

  9. 企业级内网环境搭建教程

    简单说明:环境需要四台虚拟机,每一台分别充当企业内不同的功能分区,在真实环境中的配置还需视情况自行更改 内网搭建示意图 有关域控的部署请见企业级内网的域控环境搭建3万字详细部署教程 目录指南 所需设备 ...

最新文章

  1. 监控摄像头使用率不足六成 还需提高维护力
  2. python3.7下载安装教程-CentOS 7 下 安装 Python3.7
  3. 题目1207:质因数的个数
  4. linux java c++,Java C++ 服务比较
  5. Golang的基本类型、引用类型、复合类型
  6. VTK:图表之ColorEdges
  7. javaEE 飞机大战
  8. Hello IDEA
  9. Java依旧排名第一,然而变化几何?
  10. 如何检查Mac的电池健康状况
  11. python中的math.floor可以用于整数吗_为什么Python的math.ceil()和math.floor()操作返回浮点数而不是整数?...
  12. 记第十七次CCF CSP认证
  13. Java编写一个小游戏
  14. Unity3d LED数码管单表控制/多表控制
  15. SPSS应用于均值检验
  16. 计算机软考网络工程师视频资料,计算机软考网络工程师视频教程
  17. 详解二叉树的递归遍历与非递归遍历——(二)
  18. 为什么员工辞职时,领导都要象征性挽留一下?
  19. Datawhale组队学习第五章-中值定理
  20. 计算机文件查看隐藏文件,电脑隐藏文件怎么显示啊,明明点了显示所有文件,按了确定后,又恢复了原来样子,为什么啊...

热门文章

  1. java flv转mp3_Java调用ffmpeg转换视频格式为flv的示例详解
  2. 个人管理:“唐僧”之五项修炼
  3. 2018年5月28日 情绪、信念与身体 总得写点什么
  4. 使用python获取win10锁屏照片
  5. 使用 VS2013 Update 4 编译 Scylla 0.9.8
  6. 债券收益率建模(时间序列建模)时间序列相似度度量
  7. 解密中概股的“杀手”:做空者
  8. 复制url直接能跳过验证_爬虫黑科技-绕开百度人机验证
  9. safair中vue修改了数据,但是视图没有更新解决方案
  10. Fairy Tail - Main Theme Slow Version guitar (solo)