CentOS release 6.8 (Final) 安装 Cacti-1.2.2 和 Spine

下载和安装配置 cacti

[root@localhost ~]# wget https://www.cacti.net/downloads/cacti-latest.tar.gz
[root@localhost ~]# tar -zxvf cacti-latest.tar.gz -C /var/www/html/
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# mv cacti-1.2.2/ cacti
[root@localhost ~]# chown -R root:root /var/www/html/cacti/
[root@localhost ~]# chmod -R 777 /var/www/html/cacti/
[root@localhost ~]# groupadd cacti
[root@localhost ~]# useradd -g cacti cacti
[root@localhost ~]# chown -R cacti:cacti /var/www/html/cacti/log/
[root@localhost ~]# chown -R cacti:cacti /var/www/html/cacti/rra/
[root@localhost ~]# cd /var/www/html/cacti/

配置 cacti 数据库

[root@localhost cacti]# vim include/config.php
$database_type     = 'mysql';
$database_default  = 'cacti';
$database_hostname = 'localhost';
$database_hostname = '127.0.0.1';
$database_username = 'cacti';
$database_password = 'cacti';
$database_port     = '3306';
$database_ssl      = false;
$database_ssl_key  = '';
$database_ssl_cert = '';
$database_ssl_ca   = '';
[root@localhost cacti]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5713
Server version: 5.6.43 MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database cacti default character set utf8;
Query OK, 1 row affected (0.01 sec)
mysql> grant all on cacti.* to 'cacti'@'localhost' identified by 'cacti';
Query OK, 0 rows affected (0.03 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye

MySQL 调优

[root@localhost ~]# vim /etc/my.cnf
max_heap_table_size = 64M
max_allowed_packet = 18777216
tmp_table_size = 96M
join_buffer_size = 96M
innodb_buffer_pool_size = 256M
innodb_doublewrite = OFF
innodb_additional_mem_pool_size = 128M
innodb_flush_log_at_timeout = 3
innodb_read_io_threads = 32
innodb_write_io_threads = 16
mysql> grant all privileges on *.* to cacti@localhost identified by 'cacti';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
[root@localhost ~]# /usr/bin/mysql_tzinfo_to_sql /usr/share/zoneinfo/ | mysql -uroot -p mysql

安装 spine

[root@localhost ~]# wget https://www.cacti.net/downloads/spine/cacti-spine-latest.tar.gz #下载 spine
[root@localhost ~]# tar zxvf cacti-spine-latest.tar.gz -C /usr/local/  #解压文件到/usr/local/ 
[root@localhost ~]# cd /usr/local/ #切换到/usr/local/目录
[root@localhost local]# mv cacti-spine-1.2.2/ spine/ #重命名目录名称
[root@localhost ~]# cd spine/ #切换到 spine/目录
[root@localhost spine]# yum install -y net-snmp-devel mysql-devel openssl-devel dos2unix autoconf automake binutils libtool gcc cpp glibc-headers kernel-headers glibc-devel help2man #安装依赖库
[root@localhost spine]# sh bootstrap #运行 sh 脚本

根据以以下提示数据库版本来运行安装方式

  To compile and install Spine using MySQL versions 5.5 or higher
  please do the following:

  ./configure
  make
  make install
  chown root:root /usr/local/spine/bin/spine
  chmod +s /usr/local/spine/bin/spine

  To compile and install Spine using MySQL versions previous to 5.5
  please do the following:

  ./configure --with-reentrant
  make
  make install
  chown root:root /usr/local/spine/bin/spine
  chmod +s /usr/local/spine/bin/spine

执行编译与安装与目录权限设置

[root@localhost ~]# ./configure --with-reentrant
make
make install
chown root:root /usr/local/spine/bin/spine
chmod +s /usr/local/spine/bin/spine

配置 spine.conf:

[root@localhost ~]# cp /usr/local/spine/etc/spine.conf.dist /etc/spine.conf
[root@localhost ~]# vi /etc/spine.conf
DB_Host 127.0.0.1
DB_Database cacti
DB_User cacti
DB_Pass cacti
DB_Port 3306

执行 spine 初始化

[root@localhost ~]# /usr/local/spine/bin/spine

将 spine 文件复制以正确路径(将 bin 目录下的 spine 复制并新建目录为 spine/下)

[root@localhost ~]# mv /usr/local/spine/bin/spine /usr/local/spine/bin/spine/

访问 cacti web http://127.0.0.1/cacti/install/

如果访问 web 出现以下错误:
Forbidden
You don’t have permission to access /cacti/install on this server.

修改以下内容

[root@localhost ~]# vi /etc/httpd/conf.d/cacti.conf
Alias /cacti    /usr/share/cacti
<Directory /usr/share/cacti/>
        Order Deny,Allow
        Allow from all      
</Directory>

如果访问 web 出现以下错误:
FATAL: Connection to Cacti database failed. Please ensure the database is running and your credentials in config.php are valid.

重启 mysql

[root@localhost ~]# service mysqld restart

一切就绪后可即可正常安全访问 cacti 配置页面:仙人掌安装向导(Cacti Installation Wizard)

1、接受许可协议(License Agreement)

2、配置安装前检测页面(Pre-installation Checks)

3、配置安装类型页面(Installation Type)

4、配置关键二进制位置和版本(Critical Binary Locations and Versions)

5、显示目录权限检查(Directory Permission Checks)

6、配置模板设置(Template Setup)
// 选择要使用的设备模板。如果操作系统是 Windows,则需要确保选择 “Windows 设备” 模板。如果您的操作系统是 Linux / UNIX,请确保选择 “本地 Linux 计算机” 设备模板。

成功完成以上配置后,即可跳转到 cacti 登录界面,默认用户名和密码为 admin:admin,登录后,根据提示更改密码;
Current password / 当前密码
New password / 新密码
Confirm new password / 确认新密码

完成。

博客字体族(font-family)推荐

主要为代码的博客:
Consolas, Monaco, ‘Andale Mono’, ‘Ubuntu Mono’, monospace

英文和中文的博客:
‘Lucida Grande’,’Helvetica Neue’,Helvetica,Arial,Verdana,’PingFang SC’,’Hiragino Sans GB’,STHeiti,’Microsoft YaHei’,’WenQuanYi Micro Hei’,’WenQuanYi Micro Hei Mono’,’WenQuanYi Zen Hei’,’WenQuanYi Zen Hei Mono’,’Noto Sans CJK SC’,’Source Han Sans CN’,SimSun,sans-serif

中文和代码的博客:
Consolas, Monaco, ‘Andale Mono’, ‘Ubuntu Mono’, ‘Lucida Grande’,’Helvetica Neue’,Helvetica,Arial,Verdana,’PingFang SC’,’Hiragino Sans GB’,STHeiti,’Microsoft YaHei’,’WenQuanYi Micro Hei’,’WenQuanYi Micro Hei Mono’,’WenQuanYi Zen Hei’,’WenQuanYi Zen Hei Mono’,’Noto Sans CJK SC’,’Source Han Sans CN’,SimSun,sans-serif

about UNIX/Linux, Like the Best OS!

Linux,最早由 Linus Benedict Torvalds 在 1991 年开始编写。在这之前,Richard Stallman 创建了 Free Software Foundation(FSF)组织以及 GNU 项目,并不断的编写创建 GNU 程序(此类程序的许可方式均为 GPL: General Public License)。在不断的有杰出的程序员和开发者加入到 GNU 组织中后,便造就了今天我们所看到的 Linux,或称 GNU/Linux。
Linux 的发行版本可以大体分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本
前者以著名的 Redhat(RHEL)为代表,后者以 Debian 为代表。

Linux 发行版:
Redhat,应该称为 Redhat 系列,包括 RHEL(Redhat Enterprise Linux,也就是所谓的 Redhat Advance Server,收费版本)、Fedora Core(由原来的 Redhat 桌面版本发展而来,免费版本)、CentOS(RHEL 的社区克隆版本,免费)。Redhat 应该说是在国内使用人群最多的 Linux 版本,甚至有人将 Redhat 等同于 Linux,而有些老鸟更是只用这一个版本的 Linux。所以这个版本的特点就是使用人群数量大,资料非常多,言下之意就是如果你有什么不明白的地方,很容易找到人来问,而且网上的一般 Linux 教程都是以 Redhat 为例来讲解的。Redhat 系列的包管理方式采用的是基于 RPM 包的 YUM 包管理方式,包分发方式是编译好的二进制文件。稳定性方面 RHEL 和 CentOS 的稳定性非常好,适合于服务器使用,但是 Fedora Core 的稳定性较差,最好只用于桌面应用。
Debian,或者称 Debian 系列,包括 Debian 和 Ubuntu 等。Debian 是社区类 Linux 的典范,是迄今为止最遵循 GNU 规范的 Linux 系统。Debian 最早由 Ian Murdock 于 1993 年创建,分为三个版本分支(branch): stable, testing 和 unstable。其中,unstable 为最新的测试版本,其中包括最新的软件包,但是也有相对较多的 bug,适合桌面用户。testing 的版本都经 过 unstable 中的测试,相对较为稳定,也支持了不少新技术(比如 SMP 等)。而 stable 一般只用于服务器,上面的软件包大部分都比较过时,但是 稳定和安全性都非常的高。Debian 最具特色的是 apt-get / dpkg 包管理方式,其实 Redhat 的 YUM 也是在模仿 Debian 的 APT 方式,但在二进制文件发行方式中,APT 应该是最好的了。Debian 的资 料也很丰富,有很多支持的社区,有问题求教也有地方可去:)
Ubuntu,严格来说不能算一个独立的发行版本,Ubuntu 是基于 Debian 的 unstable 版本加强而来,可以这么说,Ubuntu 就是 一个拥有 Debian 所有的优点,以及自己所加强的优点的近乎完美的 Linux 桌面系统。根据选择的桌面系统不同,有三个版本可供选择,基于 Gnome 的 Ubuntu,基于 KDE 的 Kubuntu 以及基于 Xfc 的 Xubuntu。特点是界面非常友好,容易上手,对硬件的支持非常全面,是最适合做桌面系统的 Linux 发行版本。
Gentoo,伟大的 Gentoo 是 Linux 世界最年轻的发行版本,正因为年轻,所以能吸取在她之前的所有发行版本的优点,这也是 Gentoo 被称为最完美的 Linux 发行版本的原因之一。Gentoo 最初由 Daniel Robbins(FreeBSD 的开发者之一)创建,首个稳定版本发布于 2002 年。由于开发者对 FreeBSD 的熟识,所以 Gentoo 拥有媲美 FreeBSD 的广受美誉的 ports 系统 ——Portage 包管理系统。不同于 APT 和 YUM 等二进制文件分发的包管理系统,Portage 是基于源代码分发的,必须编译后才能运行,对于大型软 件而言比较慢,不过正因为所有软件都是在本地机器编译的,在经过各种定制的编译参数优化后,能将机器的硬件性能发挥到极致。Gentoo 是所有 Linux 发行版本里安装最复杂的,但是又是安装完成后最便于管理的版本,也是在相同硬件环境下运行最快的版本。
FreeBSD,是一个自由的、免费的类 UNIX 操作系统 (Unix-like),经由 BSD UNIX 由 AT&T UNIX 衍生而来,FreeBSD 由于法律原因不能称为 UNIX,但由于直接衍生于 BSD UNIX,并且一些原来 BSD UNIX 的开发者后来转到 FreeBSD 的开发,使得 FreeBSD 在内部结构和系统 API 上和 UNIX 有很大的兼容性。由于 FreeBSD 宽松的法律条款,其代码被好多其他系统借鉴包括苹果公司的 MacOS X,正因此由于 MacOS X 的 UNIX 兼容性,使得 MacOS X 获得了 UNIX 商标认证。它并不是一个 Linux 系统!但 FreeBSD 与 Linux 的用户群有相当一部分是重合的,二者支持的硬件环境也比较一致,所采用的软件也比较类似,所以可以将 FreeBSD 视为一个 Linux 版本来比较。FreeBSD 拥有两个分支: stable 和 current。顾名思义,stable 是稳定版,而 current 则是添加了新技术的测试版。FreeBSD 采用 Ports 包管理系统,与 Gentoo 类似,基于源代码分发,必须在本地机器编后后才能运行,但是 Ports 系统没有 Portage 系统使用简便,使用起来稍微复杂一些。FreeBSD 的最大特点就是稳定和高效,是作为服务器操作系统的最佳选 择,但对硬件的支持没有 Linux 完备,所以并不适合作为桌面系统。
SUSE Linux,简称”SuSE”,发音为/zuz/,意思为”Software- und System-Entwicklung”,这是一句德文,英文为”Software and system development”。现在这家公司的名字再度更改成 SUSE Linux。它原是德国的 SuSE Linux AG 公司发行维护的 Linux 发行版,是属于此公司的注册商标。2004 年这家公司被 Novell 公司收购。广义上 SUSE Linux 是一系列 Linux 发行版,第一个版本出现在 1994 年初,SUSE 现存的最古老的商业发行版之一,起源于德国,而 SUSE Linux 针对个人用户。SUSE Linux 原是以 Slackware Linux 为基础,并提供完整德文使用界面的产品。1992 年 Peter McDonald 成立了 Softlanding Linux System(SLS) 这个发行版。这套发行版包含的软件非常多,更首次收录了 X Window 及 TCP/IP 等套件。Slackware 就是一个基于 SLS 的发行版。
Mandriva,是目前全球最优秀的 Linux 发行版之一,稳居于 linux 排行榜第一梯队。2005 年之前稳居 linux 排行榜 NO.1。它是目前最易用的 linux 发行版,也是众多国际级 linux 发行版中唯一一个默认即支持中文环境的 linux。它是法国的 Mandriva 公司(前身为 Mandrake 公司)开发的 Linux 发行版。Mandriva 公司现在仍然是欧洲最大的 Linux 厂商,Mandriva Linux 的前身为著名的 Mandrake Linux。Mandriva(Mandrake)项目是世界上第一个为非技术类用户设计的易于使用、安装和管理的 linux 版本。Mandriva(Mandrake Linux)早期方便的字体安装工具和默认的中文支持,为 Linux 普及做出了很大的贡献。现在的 Mandriva 是由 mandrake 和 Conectiva 结合发展而来的。
Slackware,是由 Patrick Volkerding 开发的 GNU/Linux 发行版。与很多其他的发行版不同,它坚持 KISS(Keep It Simple Stupid)的原则,就是说没有任何配置系统的图形界面工具。一开始,配置系统会有一些困难,但是更有经验的用户会喜欢这种方式的透明性和灵活性。 Slackware Linux 的另一个突出的特性也符合 KISS 原则:Slackware 没有如 RPM 之类的成熟的软件包管理器。Slackware 的软件包都是通常的 tgz(tar/gzip) 格式文件再加上安装脚本。Tgz 对于有经验的用户来说,比 RPM 更为强大,并避免了 RPM 之类管理器的依赖性问题。Slackware 与其他的发行版本(Red Hat、Debian、Gentoo、SuSE、 Mandriva、Ubuntu 等)不同的道路,它力图成为 “UNIX 风格” 的 Linux 发行版本。只吸收稳定版本的应用程序,并且缺少其他 linux 版本中那些为发行版本定制的配置工具。

Linux 服务器:
CentOS,其实是 Redhat 的内核,感觉是会成熟稳定一点,相比旧 Redhat,他多了一个 yum 的命令,学 Debian 一样自动安装软件;但我感觉 CentOS 的可以 Yum 的东西相比 Debian 或 Ubuntu 实在太少了;CentOS 介于年轻与成熟之间,它比 Ubuntu 更注重安全性,默认一装好就自带并打开防火墙就知道;而且有一个叫 SELinux 的东东在里面,让不同的程序之间权限有所限制,这也是我装 CentOS 一些软件经常莫名奇妙地告诉我 “没有权限” 的一个原因。后来因为一些软件搞了一夜,都没有搞成功,比如 VSftp+PAM_MYSQL 的认证,一气之下把他格掉了。
Ubuntu,就是 Debian 的延续版,apt-get 自动安装、更新软件的方式,是 Debian 首创。相比起来 apt-get 软件库及源强大很多,也多很多,我们的服务器除了一个 magickWand(imageMagick 的 PHP API),其它东西全部都是 apt-get 下来的,安装不需要一分钟;感觉 Ubuntu 更加自由,小巧,灵活,有点年轻人的感觉。
Gentoo,估计是性能最好的,因为他安装超麻烦;据说他的理念就是,让你明白 Linux 的每一样东西是如何出来的! 全部由你定制来决定。
FreeBSD,是另外一种类 UNIX 内核,不属于 Linux,适做服务器就是采用 FreeBSD,据说是性能最强劲的。但内核不一样,我们这次不敢尝试。

Linux 发行版(移动):
Android,是一种基于 Linux 的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由 Google 公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用 “安卓” 或 “安致”。Android 操作系统最初由 Andy Rubin 开发,主要支持手机。2005 年 8 月由 Google 收购注资。2007 年 11 月,Google 与 84 家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良 Android 系统。随后 Google 以 Apache 开源许可证的授权方式,发布了 Android 的源代码。第一部 Android 智能手机发布于 2008 年 10 月。Android 逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。2011 年第一季度,Android 在全球的市场份额首次超过塞班系统,跃居全球第一。 2012 年 11 月数据显示,Android 占据全球智能手机操作系统市场 76% 的份额,中国市场占有率为 90%。
MeeGo,是一种基于 Linux 的自由、开放源代码的移动便携设备操作系统。它在 2010 年 2 月的全球移动通信大会中发布,主要推动者为诺基亚与英特尔。MeeGo 融合了诺基亚的 Maemo 及英特尔的 Moblin 平台,并由 Linux 基金会主导。MeeGo 主要定位在移动设备、家电数码等消费类电子产品市场,可用于智能手机、平板电脑、上网本、智能电视和车载系统等平台。2011 年 9 月 28 日,继诺基亚宣布放弃开发 meego 之后,英特尔也正式宣布将 MeeGo 与 LiMo 合并成为新的系统:Tizen。2012 年 7 月,在诺基亚的支持下,Jolla Mobile 公司成立。并基于 Meego 研发 sailfish os,将在华发布新一代 Jolla 手机。
Chrome OS,是一款基于 Linux 的开源 PC 操作系统,定位于上网本、紧凑型以及低成本电脑。这款开源软件将被命名为 Chrome OS,谷歌公司于 2010 年 12 月 7 日在美国举行 Chrome 相关产品发布会,发布会上正式发布 Chrome Web store 和 Chrome OS。Chromium OS 是 Google Chrome OS 计算机操作系统的开源项目,主要是提供给开发者用的,每个人可以检查、修改代码甚至是编译出自己的版本。
webOS,是一个嵌入式操作系统,以 Linux 内核为主体并加上部份 Palm 公司开发的专有软件,它主要是为 Palm 智能手机而开发。该平台于 2009 年 1 月 8 日的拉斯维加斯国际消费电子展宣布给公众,并于 2009 年 6 月 6 日发布。该平台是事实上的 PalmOS 继任者,webOS 将在线社交网络和 Web 2.0 一体化作为重点。第一款搭载 webOS 系统的智能手机是 Palm Pre,于 2009 年 6 月 6 日发售。由于 Palm 被 HP 收购,webOS 被收归 HP 旗下。2011 年 8 月 19 日凌晨,在惠普第三季度财报会议上,惠普宣布正式放弃围绕 TouchPad 平板电脑和 webOS 手机的所有运营。
Tizen,(中文名:泰泽)是两大 Linux 联盟 LiMo Foundation 和 Linux Foundation 整合资源优势,携手英特尔和三星电子,共同开发针对手机和其它设备的操作系统。该系统整合了 LiMo 和 MeeGo 两个操作系统,并且预计于 2012 年 2 月正式公布。Tizen 系统是英特尔 MeeGo 系统与三星 LiMo 系统的混合体。  随着惠普放弃开发 webOS 智能手机和平板电脑,RIM 的 Playbook 艰难求生,诺基亚剧变,运营商们希望能出现一个可替代的新操作系统,没人希望看到 Android 和 iOS 双寡头垄断的局面。  同时由于英特尔、三星各自在 MeeGo 及 Bada 发展遭遇困难,双方便携手全新平台 Tizen 系统,这样可以降低开发资源与人力,并强化技术及应用程序商店功能,包括宏碁、华硕均将加入 Tizen 平台开发计划,宏达电也正评估中,Tizen 平台是否有机会形成 OS 平台第 4 势力,与 Android、iOS、Windows 相较劲,备受业界关注。
BADA,是韩国三星电子自行开发的智能手机平台,底层为 Linux 核心。支援丰富功能和用户体验的软件应用,于 2009 年 11 月 10 日发布。bada 在韩语裏是 “海洋” 的意思。bada 的设计目标是开创人人能用的智能手机的时代。它的特点是配置灵活、用户交互性佳、面向服务优,非常重视 SNS 整合和基于位置服务应用。bada 系统由操作系统内核层、设备层、服务层和框架层组成,支持设备应用、服务应用和 Web 与 Flash 应用。

 

Linux 发行版
Debian ▪ Debian ▪ Ubuntu ▪ Linux Mint
▪ Knoppix ▪ MEPIS ▪ Sidux
▪ CrunchBang Linux ▪ Chromium OS ▪ Google Chrome OS
Red Hat ▪ Red Hat Enterprise Linux ▪ Fedora ▪ CentOS
▪ Scientific Linux ▪ Oracle Linux
Mandriva ▪ Mandriva Linux ▪ PCLinuxOS ▪ Unity Linux
▪ Mageia
Gentoo ▪ Gentoo Linux ▪ Sabayon Linux ▪ Calculate Linux
▪ Funtoo Linux
Slackware ▪ Slackware ▪ Zenwalk ▪ VectorLinux
/ ▪ openSUSE ▪ Arch Linux ▪ Puppy Linux
▪ Damn Small Linux ▪ MeeGo ▪ Slitaz
▪ Tizen ▪ StartOS

 

UNIX ,是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统,最早由 KenThompson、Dennis Ritchie 和 Douglas McIlroy 于 1969 年在 AT&T 的贝尔实验室开发。目前它的商标权由国际开放标准组织所拥有,只有符合单一 UNIX 规范的 UNIX 系统才能使用 UNIX 这个名称,否则只能称为类 UNIX(UNIX-like)。
AIX(Advanced Interactive eXecutive)是 IBM 开发的一套 UNIX 操作系统。它符合 Open group 的 UNIX 98 行业标准(The Open Group UNIX 98 Base Brand),通过全面集成对 32-位和 64-位应用的并行运行支持,为这些应用提供了全面的可扩展性。它可以在所有的 IBM ~ p 系列和 IBM RS/6000 工作站、服务器和大型并行超级计算机上运行。AIX 的一些流行特性例如 chuser、mkuser、rmuser 命令以及相似的东西允许如同管理文件一样来进行用户管理。AIX 级别的逻辑卷管理正逐渐被添加进各种自由的 UNIX 风格操作系统中。
Solaris 是 SUN 公司研制的类 Unix 操作系统。直至 2013 年,Solaris 的最新版为 Solaris 11。早期的 Solaris 是由 BSDUnix 发展而来。这是因为升阳公司的创始人之一,比尔·乔伊(Bill Joy)来自加州大学伯克莱分校(U.C.Berkeley)。但是随着时间的推移,Solaris 在接口上正在逐渐向 System V 靠拢,但至今 Solaris 仍旧属于私有软件。2005 年 6 月 14 日,Sun 公司将正在开发中的 Solaris 11 的源代码以 CDDL 许可开放,这一开放版本就是 OpenSolaris。Sun 的操作系统最初叫做 SunOS。SunOS 5.0 开始,SUN 的操作系统开发开始转向 System V4,并且有了新的名字叫做 Solaris 2.0。Solaris 2.6 以后,SUN 删除了版本号中的”2″,因此,SunOS 5.10 就叫做 Solaris 10。Solaris 的早期版本后来又被重新命名为 Solaris 1.x. 所以”SunOS” 这个词被用做专指 Solaris 操作系统的内核,因此 Solaris 被认为是由 SunOS,图形化的桌面计算环境,以及它网络增强部分组成。Solaris 运行在两个平台:Intel x86 及 SPARC/UltraSPARC。后者是升阳工作站使用的处理器。因此,Solaris 在 SPARC 上拥有强大的处理能力和硬件支援,同时 Intel x86 上的性能也正在得到改善。对这两个平台,Solaris 屏蔽了底层平台差异,为用户提供了尽可能一样的使用体验。
HP-UX 取自 Hewlett Packard UniX,是惠普公司(HP,Hewlett-Packard)以 SystemV 为基础所研发成的类 UNIX 操作系统。HP-UX 可以在 HP 的 PA-RISC 处理器、Intel 的 Itanium 处理器的电脑上运行,另外过去也能用于后期的阿波罗电脑(Apollo/Domain)系统上。较早版本的 HP-UX 也能用于 HP 9000 系列 200 型、300 型、400 型的电脑系统(使用 Motorola 的 68000 处理器)上,和 HP-9000 系列 500 型电脑(使用 HP 专属的 FOCUS 处理器架构)。
IRIX 是由硅谷图形公司(Silicon GraphicsInc.,一般用简称:SGI)以 System V 与 BSD 延伸程序为基础所发展成的 UNIX 操作系统,IRIX 可以在 SGI 公司的 RISC 型电脑上运行,即是采行 32 位、64 位 MIPS 架构的 SGI 工作站、服务器。
Xenix 是一种 UNIX 操作系统,可在个人电脑及微型计算机上使用。该系统由微软公司在 1979 年从美国电话电报公司获得授权,为 Intel 处理器所开发。后来,SCO 公司收购了其独家使用权,自那以后,该公司开始以 SCO UNIX(亦被称作 SCO OpenServer)为名发售。值得一提的是,它还能在 DECPDP-11 或是 Apple Lisa 电脑运行。它继承了 UNIX 的特性,Xenix 具备了多人多任务的工作环境,符合 UNIX System V 的接口规格 (SVID)。
A/UX(取自 Apple Unix)是苹果电脑(Apple Computer)公司所开发的 UNIX 操作系统,此操作系统可以在该公司的一些麦金塔电脑(Macintosh)上运行,最末(或说最新)的一套 A/UX 是在 Macintosh II、Quadra 及 Centris 等系列的电脑上运行。A/UX 于 1988 年首次发表,最终的版本为 3.1.1 版,于 1995 年发表。A/UX 至少需要一颗具有浮点运算单元及标签页式的存储器管理单元(Paged Memory Management Unit,PMMU)的 68k 处理器才能运行。
A/UX 是以 System V 2.2 版为基础所发展,并且也使用 System V 3(简称:SysV 3)、System V 4、BSD 4.2、BSD 4.3 等的传统特色,它也遵循 POSIX 规范及 SVID 规范,不过遵循标准版本就难以支持最新的信息技术,因此在之后的第二版便开始加入 TCP/IP 网络功能。有传言表示有一个后续版本是以 OSF/1 为主要的代码基础,但却从未公开发表过,不过无从证实此版本是否真存在过。

UNIX 和类 Unix 操作系统
UNIX System V ▪ A/UX ▪ AIX ▪ HP-UX ▪ IRIX
▪ LynxOS ▪ SCO OpenServer ▪ Tru64 ▪ Xenix
▪ Solaris ▪ OS/2
BSD UNIX-386BSD ▪ BSD/OS ▪ FreeBSD ▪ NetBSD ▪ NEXTSTEP
▪ Mac OS X ▪ iOS ▪ OpenBSD ▪ SUN OS
▪ OpenSolaris
UNIX-Like ▪ GNU ▪ Linux ▪ Android ▪ Debian
▪ Ubuntu ▪ Red Hat ▪ Linux Mint ▪ Minix
▪ QNX ▪ GNU/Linux ▪ GNU/Hurd ▪ Debian GNU/Hurd
▪ GNU/kFreeBSD ▪ StartOS
/ ▪ DOS ▪ MS-DOS ▪ Windows ▪ React OS

Linux crontab 定时任务

格式

* * * * * *

第一列的 “*” 为分钟 从 1~59
第二列的 “*” 为小时 从 0~23,0 代表午夜 12 点
第三列的 “*” 为日 从 1~31
第四列的 “*” 为月 从 1~12
第五列的 “*” 为星期 从 0~6,0 代表星期天
第六列的 “*” 为要运行的命令

分 时 日 月 星期 要运行的命令

范例

[root@localhost ~]# crontab -l
25 5 25 * * /pki/certbot/certbot-auto renew >> /var/log/le-renew.log
分(0-59)时(0-23)天(1-31)月(1-12)周(0-7;0,7 可使用 sunday)命令(或脚本执行)

以上定时任务表示为:
每个(月)25 日(经过的时候),5 点 25 时执行 /pki/certbot/certbot-auto renew 命令,并将日志输出到 /var/log/le-renew.log 文件。

 

Crontab 使用实例

30 21 * * * reboot
每晚的 21:30 重启服务器。
45 4 1,10,22 * * reboot
每月 1、10、22 号的 4:45 重启服务器
10 1 * * 6,0 reboot
每周六、周日的 1:10 重启服务器。
0,30 18-23 * * * reboot
每天 18:00 至 23:00 之间每隔 30 分钟重启服务器。
0 23-7/1 * * * reboot
晚上 11 点到早上 7 点之间,每隔一小时重启服务器。
* * * * * /scripts/script.sh
每分钟执行一次任务
通常情况下,我们并没有每分钟都需要执行的脚本 (默默的想到了 12306--)
0 17 * * sun /scripts/script.sh
每周日 17:00 执行任务
*/10 * * * * /scripts/monitor.sh
每 10min 执行一次任务
* * * jan,may,aug * /script/script.sh
在特定的某几个月执行任务
0 17 * * sun,fri /script/scripy.sh
在特定的某几天执行任务,在每周五、周日的 17 点执行任务
0 2 * * sun [ $(date +%d) -le 07 ] && /script/script.sh
在某个月的第一个周日执行任务
0 */4 * * * /scripts/script.sh
每四个小时执行一个任务
0 4,17 * * sun,mon /scripts/script.sh
每周一、周日执行任务
* * * * * /scripts/script.sh
* * * * * sleep 30; /scripts/script.sh
每个 30 秒执行一次任务,这里没有办法直接通过上诉类似的例子去执行,因为最小的是 1min。但是可以通过如上的方法。
* * * * * /scripts/script.sh; /scripts/scrit2.sh
多个任务在一条命令中配置
@yearly /scripts/script.sh
每年执行一次任务,@yearly 类似于 “0 0 1 1 *”。它会在每年的第一分钟内执行。
0 0 1 * * /scripts/script.sh
每月执行一次任务
0 0 * * 0 /scripts/script.sh
每周执行一次任务
0 0 * * * /scripts/script.sh
每天执行一次任务
0 * * * * /scripts/script.sh
每分钟执行一次任务
@reboot /scripts/script.sh
系统重启时执行
# crontab -l
MAIL=bob
0 2 * * * /script/backup.sh
将 Cron 结果重定向的特定的账户
# crontab -l
MAIL=rahul
0 2 * * * /script/backup.sh
将所有的 cron 命令备份到文本文件当中
# crontab -l > cron-backup.txt
# cat cron-backup.txt
MAIL=rahul
0 2 * * * /script/backup.sh
备份 cron 到文件中
# crontab -r
# crontab -l
no crontab for root
移除当前的 cron
# crontab cron-backup.txt
# crontab -l
MAIL=rahul
0 2 * * * /script/backup.sh
从 text file 中恢复

登录 MySQL 数据库

[root@localhost ~]# mysql -u root -h 127.0.0.1 -P 3306 -p 

##登录 MySql;-u 指定用户;-h 指定数据库主机;-P 指定端口号;-p 指定密码;

mysql> show global variables like 'port'; 
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port | 3306 |
+---------------+-------+
1 row in set (0.00 sec)

##查看 MySql 端口号

mysql> show databases; 
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| zabbix |
+--------------------+
3 rows in set (0.00 sec)

##显示数据信息

mysql> use zabbix 
Database changed

##选择该数据库,做后续相应操作

使用第三方 SSL 配置工具时关闭默认 ssl.conf 配置

默认的 /etc/httpd/conf.d/ssl.conf 配置文件的内容:

<VirtualHost _default_:443>
......
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
......
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
......
</VirtualHost>

这里指定的证书与第三方工具签发的证书存在冲突。加密访问服务器 example.com 域名的时候,第一个出现的配置被使用,根本轮不到使用第三方工具签发的证书 example.com.crt,于是导致问题。
解决方法是要么注释掉或删除上面文件中的这两行,要么将其后面的 crt 和 key 文件改成主域名使用的证书文件。
如果配置 SSL 并未出现异常可不用修改以下配置。

Linux 查看系统资源使用情况

1、top
top -u apache ## 按用户查看进程
top -p 9851 ## 按进程号查看进程
内容解释:
PID:进程的 ID
USER:进程所有者
PR:进程的优先级别,越小越优先被执行
NInice:值
VIRT:进程占用的虚拟内存
RES:进程占用的物理内存
SHR:进程使用的共享内存
S:进程的状态。S 表示休眠,R 表示正在运行,Z 表示僵死状态,N 表示该进程优先值为负数
%CPU:进程占用 CPU 的使用率
%MEM:进程使用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的 CPU 时间,即占用 CPU 使用时间的累加值。
COMMAND:进程启动命令名称

常用的命令:
P:按%CPU 使用率排行
T:按 MITE+排行
M:按%MEM 排行
c:切换显示命令名称和完整命令行
l:关闭或开启第一部分第一行 top 信息的表示
t:关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示
m:关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示
s:改变画面更新周期
n:设置在进程列表所显示进程的数量
q:退出 top
2、free
free -h ## -h 以 K/M/G 制式显示容量
total used free shared buffers cached
Mem: 1.8G 351M 1.5G 680K 10M 70M
-/+ buffers/cache: 270M 1.6G
Swap: 0B 0B 0B

total: 内存总数
used: 已经使用内存数
free: 完全空闲内存
shared: 多个进程共享的内存
buffers: 用于块设备数据缓冲,记录文件系统 metadata(目录,权限,属性等)
cached: 用于文件内容的缓冲
-/+ buffers/cached: used: 已使用多大 free: 可用有多少

常用的命令:
-b -k -m:分别以字节(KB、MB)为单位显示内存使用情况
-h:以 K/M/G 制式显示容量
-s delay:显示每隔多少秒数来显示一次内存使用情况
-t:显示内存总和列
-o:不显示缓冲区调节列

3、ps
ps -ef | wc -l #查看所有总数
ps -ef | grep www | wc -l #使用 grep 查看指定进程总数;例如指定 www 进程

Linux 执行 History 下的命令

当你在 shell(控制台、终端随便叫)中输入并执行命令时,shell 会自动把你的命令记录到历史列表中,
一般保存在用户目录下的 .bash_history 文件中。默认保存 1000 条,当然你可以更改这个值。

使用 history 命令来显示列表,可以跟一个整数表示希望显示最后的多少条命令。如下:
$  history 10
526  ls web/
527  clear
528  ls -a
529  history 10
530  date
531  make -v
532  sudo apt-get –help
533  history 10
534  gcc -v
535  history 10

每条命令前都有一个序号标示,你可以使用下面的方法回忆出以前执行过的命令。

!n    这个 n 表示序号,假如你想重新执行第 528 条命令 ls -a,那么你可以使用 !528

!!     这将会重新执行上一条命令

!?String?   这个 String 可以随便输,Shell 会从最后一条历史命令向前搜索,最先匹配的一条命令将会得到执行。
比如你输入 !?gc? 那第 534 条命令 gcc -v 就会执行。

fc n    这个 n 表示某个历史命令的序号,这将打开一个文本编辑窗口并显示这条命令。然后你可以编辑修改这条命令,
让它满足你的需要。当你退出这个编辑窗口时,该命令就会得到执行。

HTTPS 时代,使用 Certbot (Let’s Encrypt)

nginx on centos install certbot (letsencrypt)

[root@hexingxing ~]#  yum install epel-release //更新系统
[root@hexingxing ~]#  yum install -y git //安装 git
[root@hexingxing ~]#  git clone https://github.com/certbot/certbot //git 下载 certbot
Initialized empty Git repository in /certbot/.git/
remote: Counting objects: 51598, done.
remote: Compressing objects: 100% (133/133), done.
remote: Total 51598 (delta 101), reused 99 (delta 48), pack-reused 51415
Receiving objects: 100% (51598/51598), 16.12 MiB | 2.64 MiB/s, done.
Resolving deltas: 100% (36980/36980), done.
[root@hexingxing ~]#  cd certbot 切换到 certbot 目录
[root@hexingxing certbot]# ./certbot-auto 执行自动 TUI 模式生成证书

Bootstrapping dependencies for RedHat-based OSes... (you can skip this with --no-bootstrap)
yum is /usr/bin/yum
Loaded plugins: fastestmirror, refresh-packagekit, security
…

如果提示 “Could not install OS dependencies. Aborting bootstrap!” 那么按提示的详细说明操作,
如果提示 “Transaction check error: ” 类信息说明库的新旧版本不对,删除对应的版本即可,例如 “krb5-libs-1.10.3-57.el6.x86_64”,命令如下:

[root@hexingxing certbot]# rpm -e krb5-libs-1.10.3-57.el6.x86_64

然后再次./certbot-auto,直接后面的操作出现如下提示要求输入 email 地址,

[root@hexingxing certbot]# ./certbot-auto
Creating virtual environment...
Installing Python packages...
Installation succeeded.
/opt/eff.org/certbot/venv/lib/python2.6/site-packages/cryptography/__init__.py:26: DeprecationWarning: 
Python 2.6 is no longer supported by the Python core team, please upgrade your Python. 
A future version of cryptography will drop support for Python 2.6
DeprecationWarning
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): //输入你常用的邮箱地址

Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: a //接受协议或条款之类,必选 a

-------------------------------------------------------------------------------
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about EFF and
our work to encrypt the web, protect its users and defend digital rights.
-------------------------------------------------------------------------------
(Y)es/(N)o: n //是不是愿意公开你的邮箱地址,按自己想法

How would you like to authenticate and install certificates?
-------------------------------------------------------------------------------
1: Apache Web Server plugin - Beta (apache)
2: Nginx Web Server plugin - Alpha (nginx)
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2 //选择 apache 或 nginx 程序
Plugins selected: Authenticator nginx, Installer nginx
No names were found in your configuration files. Please enter in your domain
name(s) (comma and/or space separated) (Enter 'c' to cancel): //第一种情况:没有检测到域名配置文件,手动输入域名

Which names would you like to activate HTTPS for?
-------------------------------------------------------------------------------
1: test.hexingxing.cn //第二种情况,如果是已配置 SSL.conf,这里会显示你服务器已配置的域名列表,on:/etc/nginx/conf.d/
-------------------------------------------------------------------------------
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1 //选择你要创建证书的域名
Obtaining a new certificate
Performing the following challenges:
tls-sni-01 challenge for test.hexingxing.cn
Waiting for verification...
Cleaning up challenges
Deployed Certificate to VirtualHost /etc/nginx/conf.d/test.hexingxing.conf for set(['test.hexingxing.cn'])

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2 //是否立即生效重定向到 https
Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/test.hexingxing.conf

-------------------------------------------------------------------------------
Congratulations! You have successfully enabled https://test.hexingxing.cn //恭喜! 您已成功启用 https://test.hexingxing.cn

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=test.hexingxing.cn //可以访问这个链接测试你的 HTTPS 质量
-------------------------------------------------------------------------------

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
// 此处省略了很多字,关于证书密钥文件的存放情况以及到期时间

Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

90 天后自动续期:
设置自动续期定时任务
先使用以下命令测试手动模拟更新证书

[root@hexingxing ~]# {certbot 的绝对或相对路径}/certbot-auto renew --dry-run

输出类似以下提示说明命令配置正常

[root@hexingxing ~]# -------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/example.com.conf
-------------------------------------------------------------------------------
** DRY RUN: simulating 'certbot renew' close to cert expiry
** (The test certificates below have not been saved.)
Congratulations, all renewals succeeded. The following certs have been renewed:
/etc/letsencrypt/live/example.com/fullchain.pem (success)
** DRY RUN: simulating 'certbot renew' close to cert expiry
** (The test certificates above have not been saved.)
IMPORTANT NOTES:
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.

使用 crontab -e 命令设置定时任务,自动更新证书

[root@hexingxing ~]# crontab -e
0 3 1 * * {certbot 的绝对或相对路径}/certbot-auto renew >> /var/log/le-renew.log

执行时间为:每个月的 1 日凌晨 3 点 0 分 执行 renew 任务
执行以下命令后查看输出的日志是否正常,一般不到指定更新时间内输出 “No renewals were attempted.” 提示

[root@hexingxing ~]# {certbot 的绝对或相对路径}/certbot-auto renew >> /var/log/le-renew.log

如果需要强制执行,可使用以下命令,输出的内容会提示已经更新。

[root@hexingxing ~]# {certbot 的绝对或相对路径}/certbot-auto renew --force-renew

nginx https 证书配置

HTTP 301 重定向 HTTPS

正确删除软件链接的方式 rm -rf symbolic_name

举例:创建一个目录并在该目录下创建文件后建立软件链接

#mkdir test_chk
#touch test_chk/test.txt 
#ln-s test_chk  test_chk_ln 
// 由 test_chk_ln 链接 test_chk

 
正确的删除方式

rm -rf  test_chk_ln // 删除软链接,但不删除实际数据

 
错误的删除方式

rm -rf  test_chk_ln/ //这样就会把原来 test_chk 下的内容删除

// 两者只说明一个是删除文件(快捷方式),一个是删除目录(快捷方式后的实际目录),带 “/” 和 不带 “/” 的差别这么大!

Linux 关机命令之 init

init 关机命令很简单,直接输入 init + 运行级别代码 回车即可。

init 命令示例:

init 0  # 关闭机器
init 3  # 切换到多用户
init 5  # 切换到图形界面
init 6  # 重启

 

附:Linux 系统运行级别

# Default runlevel. The runlevels used by RHS are:  
#   0 - halt (Do NOT set initdefault to this)  # 关机模式
#   1 - Single user mode  # 单用户模式
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)  # 多用户,不联网模式
#   3 - Full multiuser mode  # 多用户模式
#   4 - unused  # 暂未分配
#   5 - X11  # xwindows(图形界面模式)
#   6 - reboot (Do NOT set initdefault to this)  # 重启模式