- 博客(40)
- 收藏
- 关注
转载 Golang错误和异常处理的正确姿势
序言错误和异常是两个不同的概念,非常容易混淆。很多程序员习惯将一切非正常情况都看做错误,而不区分错误和异常,即使程序中可能有异常抛出,也将异常及时捕获并转换成错误。从表面上看,一切皆错误的思路更简单,而异常的引入仅仅增加了额外的复杂度。但事实并非如此。众所周知,Golang遵循“少即是多”的设计哲学,追求简洁优雅,就是说如果异常价值不大,就不会将异常加入到语言特性中。错误和异常处理是程序的
2017-12-08 18:41:18 9669
转载 自动化运维工具Ansible详细部署
==========================================================================================一、基础介绍==========================================================================================1、
2017-05-01 15:40:42 347
转载 httpd设置HTTPS双向认证
去年用tomcat、jboss配置过HTTPS双向认证,那时候主要用的是JDK自带的keytool工具。这次是用httpd + openssl,区别比较大 在网上搜索了很多文章,发现全面介绍的不多,或者就是版本比较旧了。所以把我配置的过程完整地记录下来,以供参考 首先要说明一下,HTTPS涉及到的内容非常繁杂,包括各种术语、命令、算法,我现在也没有完全搞清楚。本文会尽量把我知道的解
2017-02-06 11:18:03 1126
转载 彻底清除Linux centos minerd木马
由于用的是临时服务器,安全性上疏忽了,导致受到了minerd木马攻击,清理的时候,遇到了ntp这个很具有迷惑性的服务,费了一番功夫才敢彻底清理。现状描述1top可以看到,这个minerd 程序把cpu跑满了2ps aux | grep minerd可知是这个程序: /opt/
2016-12-22 17:29:15 3699
转载 nginx 优化(突破十万并发)
一般来说nginx 配置文件中对优化比较有作用的为以下几项:worker_processes 8;nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数。worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;为每个进程
2016-12-15 15:08:14 299
转载 linux sed命令详解(MARK)
sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。sed使用参数
2016-11-10 17:24:35 233
转载 linux之sed用法
linux之sed用法sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法sed命令行格式为: sed [-nefri] ‘command’ 输入文本 常用选项: -n∶使用安静(silent)模式。在一般 s
2016-11-10 16:01:10 165
转载 CentOS Linux系统下apache日志文件设置(每天单独生成一个日志文件)
vi /etc/httpd/conf/httpd.conf #编辑文件#ErrorLog logs/error_log #注释此行,添加下面这行ErrorLog "|rotatelogs /var/log/httpd/error_log%Y%m%d.log 86400 480" #每天单独生成一个日志文件#CustomLog logs/access_log commo
2016-11-10 15:59:55 4499
转载 Linux下查看/管理当前登录用户及用户操作历史记录
一、查看及管理当前登录用户1、使用w命令查看登录用户正在使用的进程信息,w命令用于显示已经登录系统的用户的名称,以及他们正在做的事。该命令所使用的信息来源于/var/run/utmp文件。w命令输出的信息包括:用户名称用户的机器名称或tty号远程主机地址用户登录系统的时间空闲时间(作用不大)附加到tty(终端)的进程所用的时间(JCPU时间)当前进程所用时间(PCPU时间)用户当前
2016-11-02 16:23:17 527
转载 linux服务器怎么安装pip
1、先说一下什么是pippip 是“A tool for installing and managing Python packages.”,也就是说pip是python的软件安装工具2、下面介绍怎么在linux下安装pip下载pip到/usr/local/src# cd /usr/local/src# wget "https://pypi.python.org/packages/sou
2016-10-18 14:23:58 1012
转载 tomcat的JVM内存及连接器配置
JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。提
2016-09-08 14:48:24 529
转载 完全使用 SFTP 替代 FTP :SFTP+OpenSSH+ChrootDirectory 设置详解
完全使用 SFTP 替代 FTP :SFTP+OpenSSH+ChrootDirectory 设置详解本站文章除注明转载外,均为本站原创或者翻译。本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商;本站部分原创和翻译文章提供markdown格式源码,欢迎使用文章源码进行转载;本博客采用 WPCMD 维护;本文标题:完全使
2016-08-30 11:19:25 517
转载 linux ssh免密码登陆
ssh配置 主机A:10.0.5.199主机B:10.0.5.198 需要配置主机A无密码登录主机A,主机B先确保所有主机的防火墙处于关闭状态。在主机A上执行如下: 1. $cd ~/.ssh 2. $ssh-keygen -t rsa --------------------然后一直按回车键,就会按照默认的选项将生成的密钥保存在.ssh
2016-07-21 16:26:37 212
转载 mysql数据库忘记root密码修改方法
介绍一个非常有用的mysql启动参数—— --skip-grant-tables。 顾名思义,就是在启动mysql时不启动grant-tables,授权表。有什么用呢?当然是忘记管理员密码后有用。 操作方法: 1、杀掉原来进行着的mysql: rcmysqld stop 或者: service mysqld stop
2016-07-12 16:25:01 241
转载 Linux中Samba详细安装
为了实现Windows主机与Linux服务器之间的资源共享,Linux操作系统提供了Samba服务,Samba服务为两种不同的操作系统架起了一座桥梁,使Linux系统和Windows系统之间能够实现互相通信,为广泛的Linux爱好者提供了极大方便。本文简要介绍如何在Linux操作系统上搭建Samba服务器和简单配置。 1、服务查询默认情况下,Linux系统在默认安装中已经安
2016-07-07 16:59:47 258
转载 linux下redis安装
第一部分:安装redis 希望将redis安装到此目录 1/usr/local/redis希望将安装包下载到此目录 1/usr/local/src那么安装过程指令如下:
2016-07-06 14:50:55 280
转载 WINDOWS mstsc 连接Linux主机
般情况下我们用ssh客户端远程登陆Linux系统,至于图形界面下的linux远程登陆工具,我们一般都会想到vnc,但它的安全性不够,在这里,我将介绍XRDP的安装配置方法。xrdp安装配置方法xrdp依赖于pam和openssl-del,编译前需要先安装pam-devel和openssl-devel这两个包(不同发行版的包名称有一点不同) 2、下载好xr
2016-06-29 17:14:04 5754
转载 提升linux下tcp服务器并发连接数限制
1、修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。可使用ulimit命令查看系统允许当前用户进程打开的文件数限制: [speng@as4 ~]$
2016-06-28 15:26:01 2223
转载 在 Linux 中为非 SSH 用户配置 SFTP 环境
在某些环境中,系统管理员想要允许极少数用户在可以传输文件到Linux机器中,但是不允许使用 SSH。要实现这一目的,我们可以使用SFTP,并为其构建chroot环境。SFTP & chroot背景:SFTP是指SSH文件传输协议(SSH File Transfer protocol)或安全文件传输协议(Secure File Transfer Protocol),它提供了可
2016-05-26 17:52:22 404
转载 递归提取文件夹下所有叶子节点文件至指定文件夹
文件结构图: dir1 ├── a │ ├── b │ │ └── file1 │ └── file2 ├── c │ └── d │ ├── e │ │ └── file4 │ └── file3 └── file5
2016-05-17 15:29:29 445
转载 CentOS6.5内核升级到linux 3.12.17教程
环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G) 系统版本:Linux centos 2.6.32-431.el6.x86_64(Centos-6.5-x86_64-minimal.iso ) 升级内核版本:longterm:3.12.17 升级步骤: 1.虚拟系统安装 要求mininal方式安装(20
2016-02-24 13:36:57 621
转载 Linux 下Oracle 手工create database 脚本和步骤
原来一直用dbca来创建数据库,虽然方便,但有些参数就没有办法指定 ,所以这次参照网上的资料,整理了一个linux 下手工创建数据库的脚本,步骤如下:(只有这样,才可以批量初始化,创建数据库,不然就图形界面的,要大规模的部署,还是有受限制的)1 设置环境变量 ORACLE_HOME ORACLE_BASE ORACLE_SIDORACLE_BASE=/u01/app/oracleORA
2015-11-17 14:37:29 2570
转载 手动创建oracle数据库实例
1、首先设置Oracle_SID=manual2、创建密码文件进入/u01/app/oracle/product/10.2.0/db_1/dbs目录下,执行命令创建数据库密码文件[oracle@myorcl dbs]$ orapwd file=orapmanual password=oracle3、创建所需的目录结构[oracle@myorcl dbs]$ cd /u01/ap
2015-11-06 11:33:55 3069
转载 Fedora22添加国内软件源和本地软件源
Linux系统和Windows系统一个很大的区别就是软件安装方式,windows系统下安软件,我们去相应的网站下载软件安装包离线安装就可以了。虽然Linux下少数软件也可以像Windows一样离线安装,但是因为Linux系统的软件之间的依赖性非常强,一个软件可能依赖好几个软件,这样的话离线安装就非常不方便了,所以大多数时候都选择在线安装。Linux系统在线安装软件原理通俗的说就是,把很多软件放在一
2015-11-03 13:24:44 7761
转载 Linux上Oracle 11g安装步骤图解
Oracle 11g安装准备工作目录Oracle 11g安装准备工作Oracle 11g下载地址:Oracle 11g 联机文档:Oracle 11g R2数据库安装硬件配置要求:Linux平台需要的软件包支持:创建Oracle用户修改内核参数修改用户限制修改用户验证选项修改用户配置文件安装目录配置修改用户bash shellOracle
2015-10-30 16:48:18 367
转载 Linux Tomcat7安装配置注册服务
[root@demo tomcat7]# pwd/opt/tomcat7[root@demo tomcat7]# lsbin lib logs RELEASE-NOTES temp workconf LICENSE NOTICE RUNNING.txt webapps[root@demo jdk1.7.0_17]# lsbin
2015-10-13 14:19:09 290
转载 Tomcat域名或IP地址访问方式配置方法
1、配置www.***.com域名方式访问在Tomcat下面配置域名(如:www.***.com)的时候,同时又不希望客户通过我们网站的IP或者域名访问到Tomcat默认的ROOT,配制方法如下: 1、打开Tomcat安装目录下的/conf/server.xml文件 2、在server.xml中将原有的修改为 3、在/conf/Catalina目录下建立目录“”,然后建立RO
2015-10-09 11:38:16 405
转载 Oracle 11g常用管理命令
PS:下面是Oracle 11g最常用的基本管理命令,包括创建用户、表空间,权限分配等 1、启动oracle数据库: 从root切换到oracle用户进入: su - oracle 进入sqlplus环境,nolog参数表示不登录: sqlplus /nolog 以管理员模式登录: sqlplus / as sysdba 启动数据库 startup; 停止数据库 shutdow
2014-10-27 10:43:18 330
转载 linux下创建oracle表空间
1 、 登录服务器2 、 查看磁盘空间是否够大df -h -h更具目前磁盘空间和使用情况 以更易读的方式显示 [root@rac1 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 2.9G 2.3G 521M 82% / none 209M 0 209M 0% /de
2014-10-24 14:16:05 845
转载 static关键字原理解析
C程序一直由下列部分组成: 1)正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令; 2)初始化数据段(数据段)——在程序中所有赋了初值的全局变量,存放在这里。 3)非初始化数据段(bss段)——在程序中没有初始化的全局变量;内核将此段初始化为0。 4)栈——增长方向:自顶向下增长;自动变量以
2014-09-22 11:26:28 2137
转载 Linux下的进程间通信-详解
详细的讲述进程间通信在这里绝对是不可能的事情,而且笔者很难有信心说自己对这一部分内容的认识达到了什么样的地步,所以在这一节的开头首先向大家推荐著 名作者Richard Stevens的著名作品:《Advanced Programming in the UNIX Environment》,它的中文译本《UNIX环境高级编程》已有机械工业出版社出版,原文精彩,译文同样地道,如果你的确对在Linux下编
2014-09-16 21:04:36 381
转载 UML时序图
一、时序图简介(Brief introduction) 二、时序图元素(Sequence Diagram Elements)角色(Actor)对象(Object)生命线(Lifeline)控制焦点(Focus of Control)消息(Message)自关联消息(Self-Message)Combined Fragments 三、时序
2014-03-19 15:51:01 508
转载 linux系统目录内容介绍
根:/root --- 启动Linux时使用的一些核心文件。如操作系统内核、引导程序Grub等。home --- 存储普通用户的个人文件ftp --- 用户所有服务httpdsambauser1user2bin --- 系统启动时需要的执行文件(二进制)sbin --- 可执行程序的目录,但大多存放涉及系统管理的命令。只有root权限才能执行proc --- 虚拟,存在
2014-03-12 16:24:46 504
转载 比较全面的GDB调试用法
用GDB调试程序 GDB是一个强大的命令行调试工具。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能。 于是UNIX下的软件比Windows下的软件更能有机地结合,各自发挥各自的长处,组合成更
2014-03-09 11:42:10 745
转载 linux c 信号量详解
信号量当我们在多用户系统,多进程系统,或是两者混合的系统中使用线程操作编写程序时,我们经常会发现我们有段临界代码,在此处我们需要保证一个进程(或是一个线程的执行)需要排他的访问一个资源。信号量有一个复杂的编程接口。幸运的是,我们可以很容易的为自己提供一个对于大多数的信号量编程问题足够高效的简化接口。为了阻止多个程序同时访问一个共享资源所引起的问题,我们需要一种方法生成并且使用一个标
2014-03-04 00:58:10 5470
转载 C语言宏定义##连接符和#符的使用
C语言中如何使用宏C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量 通过替换后在其左右各加上一个双引号。比如下面代码中的宏:#define WARN_IF(EXP
2014-02-16 10:38:55 339
转载 如何避免僵尸进程
[cpp] view plaincopy#include #include #include #include int main(void) { pid_t pid; if ((pid = fork()) { fprintf(
2014-02-16 09:08:17 523
转载 结构体对齐详解
1 -- 结构体数据成员对齐的意义许多实际的计算机系统对基本类型数据在内存中存放的位置有限制,它们会要求这些数据的起始地址的值是某个数k的倍数,这就是所谓的内存对齐,而这个k则被称为该数据类型的对齐模数(alignment modulus)。这种强制的要求一来简化了处理器与内存之间传输系统的设计,二来可以提升读取数据的速度。比如这么一种处理器,它每次读写内存的时候都从某个8倍数的地址开始,
2014-02-04 17:56:17 558
转载 程序运行的原理
本文从一个最简单C程序(hello)是如何被编译和链接讲起,描述了一个程序运行的原理。一、程序运行之前使用IDE(集成开发环境)的朋友们经常会有这样的疑问:代码是怎么从一个文本文件变成可执行程序的呢?代码毕竟不是咒语,一个c程序在被运行之前其实经过了四个步骤,两次编译,汇编和链接。1.预编译这里我们只需要知道有一个叫预处理器(preprocessor也称预编译器)的
2014-02-02 21:49:46 927
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人