2018年

Centos7/Redhat7 默认firewalld防火墙使用命令

CentOS7默认的firewalld防火墙说实话真不好用,不如使用iptables。SO,博主目前还是喜欢使用CentOS6系列。

毕竟,新的版本在不断更新,目前大多VPS服务器厂商也开始不再提供旧版本的镜像了。万事万物都是有它存在的道理,比如在高级功能方面iptables就要次于firewalld防火墙。所以为了跟得上脚步,博主也开始来学习新的东西。顺便就来水这一篇博文了,做个记录。

  • 基本操作
 # systemctl start firewalld //启动 # systemctl status firewalld //状态 # systemctl disable firewalld //禁用 # systemctl stop firewalld //停止

systemctl是CentOS 7中最重要的一个管理工具,包含了service和chkconfig所有功能,关于这个工具命令,以后有机会再给大家介绍吧。

 # systemctl start firewalld.service //启动某个服务 # systemctl stop firewalld.service //关闭某个服务 # systemctl restart firewalld.service //重启某个服务 # systemctl status firewalld.service //显示某个服务的状态 # systemctl enable firewalld.service //开机时随机自启动 # systemctl disable firewalld.service //禁止开机启动 # systemctl is-enabled firewalld.service //查看是否开机启动 # systemctl list-unit-files|grep enabled //查看已经启动的服列表 # systemctl --failed //查看启动失败的服务列表
  • 基本配置命令firewalld-cmd
 # firewall-cmd --version //查看防火墙版本 # firewall-cmd --help //查看命令操作帮助 # firewall-cmd --state //显示当前状态 # firewall-cmd --zone=public --list-ports //查看所有打开运行的端口 # firewall-cmd --reload //不重启立即加载 # firewall-cmd --list-all-zones | more //查看区域信息情况 # firewall-cmd --get-zone-of-interface=eth0 //查看指定接口所属区域 # firewall-cmd --panic-on //拒绝所有包 # firewall-cmd --panic-off //取消拒绝状态 # firewall-cmd --query-panic //查看是否拒绝

举例,如何打开3306端口 

 # firewall-cmd --zone=public --add-port=3306/tcp --permanent //添加3306端口(--permanent)永久生效,没有此参数重启后失效 # firewall-cmd --reload //不重启立即加载 # firewall-cmd --zone= public --query-port=3306/tcp //查看加入3306端口状态 # firewall-cmd --zone= public --remove-port=3306/tcp --permanent //删除刚刚加入的防火墙规则3306 # firewall-cmd --permanent --remove-icmp-block=echo-request //删除禁ping # firewall-cmd --permanent --add-icmp-block=echo-request //开启禁ping # firewall-cmd --get-service //查看已被允许的信息

更多规则管理可以使用help查看

 # firewall-cmd --help

相关资料:

https://fedoraproject.org/wiki/FirewallD/zh-cn
https://access.redhat.com/documentation/zh-CN/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html
https://www.ibm.com/developerworks/cn/linux/1507_caojh/

 

 

OneinStack一键建站环境工具:新增 全自动无人值守安装模式

  • 一、工具介绍

在上一篇文章《OneinStack - 一键 Apache/Nginx/PHP/JAVA 建站环境安装脚本 支持 SSL》 中,我们介绍了OneinStack这个建站工具,是一个非错不错的工具。但是安装过程中需要每一步、一次次重复的手动选择是否安装各种环境和组件。相对而言比较繁琐。

刚又去看了下,才发现OneinStack作者又出一个全自动无人值守安装模式,这就比较方便了,一次输入命令即可。

PS:其实是之前没仔细看,才没发现出的这个新模式。233333... SO,就来补充一发了。

下面是官方最新更新日志:

2018-04-21

新增无人值守安装模式,参考:https://oneinstack.com/auto
新增MySQL8.0、Tomcat9、JDK9
新增oneinstack脚本升级./upgrade.sh oneinstack
软件版本更新至最新稳定

  • 二、自动安装模式

地址:https://oneinstack.com/auto 

方法就比较简单了,其实就是将之前的安装过程中要选择的环境、组件之类的这一个过程,简化并提前选择好,直接开始自动运行。

作者根据不同建站需求,设定了几个默认的方案:lnmp、lamp、lnmpa、lnmt、lnmh以及 自定义

自定义安装

自定义,顾名思义,就是根据你自身的需求,自行选择需要的环境和组件来进行安装。

在页面上勾选好apache、nginx建站环境、mysql、php以及所需的对应版本、Pure-FTPd、和各种组件等,设置好密码,就好在页面下方显示出对应命令。登录你的VPS服务器,复制这些命令,回车安装即可,全程无需值守。等待自动安装完成。

  • 三、总结

OneinStack工具,目前看来比较方便的,各种软件的版本也提供的比较多,更新也比较快的。

更多详细使用,请自行到官网选择安装测试。

OneinStack - 一键Apache/Nginx/PHP/JAVA建站环境安装脚本 支持SSL

官网地址:https://oneinstack.com

 

OneinStack包含以下组合

  • lnmp(Linux + Nginx+ MySQL/MongoDB+ PHP)
  • lamp(Linux + Apache+ MySQL/MongoDB+ PHP)
  • lnmpa(Linux + Nginx+ MySQL/MongoDB+ PHP+ Apache):Nginx处理静态,Apache(mod_php)处理动态PHP
  • lnmt(Linux + Nginx+ MySQL/MongoDB+ Tomcat):Nginx处理静态,Tomcat(JDK)处理JAVA
  • lnpp(Linux + Nginx+ PostgreSQL+ PHP)
  • lapp(Linux + Apache+ PostgreSQL+ PHP)
  • lnmh(Linux + Nginx+ MySQL+ HHVM)

支持系统版本

  • CentOS 6~7(包括redhat)
  • Debian 6~9
  • Ubuntu 12~16
  • Aliyun Linux 15.1

特性

  • 持续不断更新,支持交互、无人值守安装
  • 源码编译安装,大多数源码是最新stable版,并从官方网址下载
  • 提供多个数据库版本(MySQL-8.0, MySQL-5.7, MySQL-5.6, MySQL-5.5, MariaDB-10.1, MariaDB-10.0, MariaDB-5.5, Percona-5.7, Percona-5.6, Percona-5.5,AliSQL-5.6,PostgreSQL, MongoDB)
  • 提供多个PHP版本(PHP-7.2,PHP-7.1,PHP-7.0,PHP-5.6, PHP-5.5,PHP-5.4,PHP-5.3)
  • 提供Nginx、Tengine、OpenResty
  • 提供多个Apache版本(Apache-2.4,Apache-2.2)
  • 提供多个Tomcat版本(Tomcat-9,Tomcat-8,Tomcat-7,Tomcat-6)
  • 提供多个JDK版本(JDK-9,JDK-1.8,JDK-1.7,JDK-1.6)
  • 根据自己需求安装PHP缓存加速器,提供ZendOPcache、xcache、apcu、eAccelerator。及php加解密工具ionCube、ZendGuardLoader
  • 根据自己需求安装Pureftpd、phpMyAdmin
  • 根据自己需求安装Memcached、Redis
  • jemalloc优化MySQL、Nginx
  • 提供添加虚拟主机脚本
  • 提供Nginx/Tengine/OpenResty/Apache、PHP、Redis、phpMyAdmin升级脚本
  • 提供本地备、远程(服务器之间rsync)、阿里云OSS、腾讯云COS和又拍云备份脚本
  • 提供CentOS 6、7下HHVM安装

开源软件版本

# Web # DB # PHP
nginx_ver=1.14.0 mysql57_ver=5.7.22 php72_ver=7.2.4
tengine_ver=2.2.2 mysql56_ver=5.6.40 php71_ver=7.1.16
openresty_ver=1.13.6.1 mysql55_ver=5.5.60 php70_ver=7.0.29
apache24_ver=2.4.33 mariadb102_ver=10.2.14 php56_ver=5.6.35
apache22_ver=2.2.34 mariadb101_ver=10.1.32 php55_ver=5.5.38
tomcat9_ver=9.0.7 mariadb100_ver=10.0.34 php54_ver=5.4.45
tomcat8_ver=8.5.30 mariadb55_ver=5.5.59 php53_ver=5.3.29
tomcat7_ver=7.0.86 percona57_ver=5.7.21-20  # JDK
tomcat6_ver=6.0.53 percona56_ver=5.6.39-83.1 jdk9_ver=9.0.4
    jdk18_ver=1.8.0_172
  alisql56_ver=5.6.32-8 jdk17_ver=1.7.0_80
  pgsql_ver=10.3 jdk16_ver=1.6.0_45
  mongodb_ver=3.6.3  
# phpMyAdmin # Jemalloc # Pure-FTPd
phpmyadmin_ver=4.8.0 jemalloc_ver=5.0.1 pureftpd_ver=1.0.47
phpmyadmin_oldver=4.4.15.10    
# Redis # Memcached  
redis_ver=4.0.9 memcached_ver=1.5.7

安装步骤

yum -y install wget screen curl python #for CentOS/Redhat# apt-get -y install wget screen curl python #for Debian/Ubuntuwget http://mirrors.linuxeye.com/oneinstack-full.tar.gz #包含源码,国内外均可下载tar xzf oneinstack-full.tar.gzcd oneinstack #如果需要修改目录(安装、数据存储、Nginx日志),请修改options.conf文件screen -S oneinstack #如果网路出现中断,可以执行命令screen -R oneinstack重新连接安装窗口./install.sh #注:请勿sh install.sh或者bash install.sh这样执行

《安装》

如何添加附加组件?

./addons.sh

《安装》

  • 三、使用说明

如何添加虚拟主机?

./vhost.sh

《安装》

如何删除虚拟主机?

./vhost.sh del

《安装》

如何管理FTP账号?

./pureftpd_vhost.sh

《安装》

如何备份?

./backup_setup.sh # Set backup options 

《安装》

 ./backup.sh # Start backup, You can add cron jobs   # crontab -l # Examples      0 1   * cd ~/oneinstack;./backup.sh  > /dev/null 2>&1 &

如何管理服务?

Nginx/Tengine/OpenResty:

service nginx {start|stop|status|restart|reload|configtest}

MySQL/MariaDB/Percona:

service mysqld {start|stop|restart|reload|status}

PostgreSQL:

service postgresql {start|stop|restart|status}

MongoDB:

service mongod {start|stop|status|restart|reload}

PHP:

service php-fpm {start|stop|restart|reload|status}

HHVM:

service supervisord {start|stop|status|restart|reload}

:hhvm进程交给supervisord管理,了解更多请访问《Supervisor管理hhvm进程
Apache:

service httpd {start|restart|stop}

Tomcat:

service tomcat {start|stop|status|restart}

Pure-Ftpd:

service pureftpd {start|stop|restart|status}

Redis:

service redis-server {start|stop|status|restart|reload}

Memcached:

service memcached {start|stop|status|restart|reload}

如何更新版本?

./upgrade.sh

《安装》

如何卸载?

./uninstall.sh

《安装》

 

LAMP.sh一键安装包轻松搭建Apache建站环境-自动安装SSL和PHP组件

一、官方介绍

LAMP 一键安装包是一个用 Linux Shell 编写的可以为 CentOS/Debian/Ubuntu 系统的 VPS 或服务器安装 LAMP(Linux + Apache + MySQL/MariaDB/Percona + PHP) 生产环境的 Shell 程序。包含一些可选安装组件如:ionCube Loaders、XCache、OPcache、memcached、Redis、GraphicsMagick、ImageMagick、Swoole 等。同时还有一些辅助脚本如:虚拟主机管理、Apache、MySQL/MariaDB/Percona、PHP 及 PhpMyAdmin 的升级等。

为什么需要LAMP?

手动编译安装需要输入大量命令,且有可能会中途出错。
对于 Linux 新手来说,想要成功搭建建站环境,颇费周折。

LAMP 有什么优点?

LAMP 是最经典的建站环境之一,风靡世界十多年,迄今仍旧十分受中小站长的欢迎。
而本脚本只需几个简单交互,选择需要安装的包,即可一路安装,无人值守。

Github 项目主页:
https://github.com/teddysun/lamp

通过 Github 页面下载最新版:
https://github.com/teddysun/lamp/archive/master.zip

旧版本存档:
https://github.com/teddysun/lamp/archive/archive.zip

官网地址:https://lamp.sh

二、LAMP.sh安装

目前LAMP.sh提供的PHP、Apache、MysqL、MariaDB等都更新到最新版,且支持Let’s Encrypt免费证书。

安装要求

系统需求

  • 系统支持:CentOS 6+/Debian 7+/Ubuntu 12+
  • 内存要求:≥ 512MB
  • 硬盘要求:至少 5GB 以上的剩余空间
  • 服务器必须配置好 软件源 和 可连接外网
  • 必须具有系统 root 权限
  • 强烈建议使用全新系统来安装

支持组件

  • 支持 PHP 自带几乎所有组件
  • 支持 MySQL、MariaDB、Percona Server数据库
  • 支持 Redis(可选安装)
  • 支持 XCache (可选安装)
  • 支持 Swoole (可选安装)
  • 支持 Memcached (可选安装)
  • 支持 ImageMagick (可选安装)
  • 支持 GraphicsMagick (可选安装)
  • 支持 ionCube Loader (可选安装)
  • 自助升级 Apache,PHP,phpMyAdmin,MySQL/MariaDB/Percona Server至最新版本
  • 命令行新增虚拟主机(使用 lamp 命令),操作简便
  • 支持一键卸载

安装步骤

  1. 事前准备(安装 wget、screen、unzip,创建 screen 会话)

注意:双斜杠//后的内容不要复制输入

yum -y install wget screen git      // for CentOSapt-get -y install wget screen git  // for Debian/Ubuntu
  1. git clone 并赋予脚本执行权限
git clone https://github.com/teddysun/lamp.gitcd lampchmod +x *.sh
  1. 开始安装
screen -S lamp./lamp.sh

安装过程中会让你选择Apache、PHP、MysqL等版本。

相关的组件也可以一并安装。

最后看到如下提示就表示安装成功了。

三、LAMP.sh使用

虚拟主机使用

添加虚拟主机需要进入到命令工具中手动添加。命令如下:

lamp add      创建虚拟主机lamp del      删除虚拟主机lamp list     列出虚拟主机

在添加的过程中会让你绑定域名、设置好数据库账号与密码等,另外如果你要一键开启Let’s Encrypt,需要提前将域名做好DNS解析,然后在添加虚拟主机选择Let’s Encrypt证书选项。

如何升级

注意:双斜杠//后的内容不要复制输入

git pull                 // Get latest version./upgrade.sh             // Select one to upgrade./upgrade.sh apache      // Upgrade Apache./upgrade.sh db          // Upgrade MySQL/MariaDB/Percona./upgrade.sh php         // Upgrade PHP./upgrade.sh phpmyadmin  // Upgrade phpMyAdmin

如何卸载

./uninstall.sh 

程序目录

  • MySQL 安装目录: /usr/local/mysql
  • MySQL 数据库目录:/usr/local/mysql/data(默认,安装时可更改路径)
  • MariaDB 安装目录: /usr/local/mariadb
  • MariaDB 数据库目录:/usr/local/mariadb/data(默认,安装时可更改路径)
  • Percona 安装目录: /usr/local/percona
  • Percona 数据库目录:/usr/local/percona/data(默认,安装时可更改路径)
  • PHP 安装目录: /usr/local/php
  • Apache 安装目录: /usr/local/apache

命令一览

  • MySQL 或 MariaDB 或 Percona 命令
/etc/init.d/mysqld (start|stop|restart|status)
  • Apache 命令
/etc/init.d/httpd (start|stop|restart|status)
  • Memcached 命令(可选安装)
/etc/init.d/memcached (start|stop|restart|status)
  • Redis 命令(可选安装)
/etc/init.d/redis-server (start|stop|restart|status)

网站根目录

默认的网站根目录: /data/www/default

四、总结

OneinStackLNMP.org这两个脚本相比,LAMP.sh专注于提供Apache建站脚本,并且作者一直在将Apache、PHP和MysqL等最新版本和特性添加进去,基本上可以满足大家对于Apache建站和LAMP的需要。

 

部分内容参考转载自:挖站否

 

Linux Crontab命令定时任务基本语法与操作教程

Crontab是一个Unix/Linux系统下的常用的定时执行工具,可以在无需人工干预的情况下运行指定作业。很多时候我们都要用到Crontab命令,例如在 《Let’s Encrypt 免费 通配符(野卡)域名证书》申请方法中提到了acme.sh 脚本就是利用了Crontab定时任务的形式来更新SSL证书。

通过crontab命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本,用Crontab实现每天定时重启VPS、服务器或者是Nginx、PHP、MysqL服务等。

总之,掌握基本的Crontab命令语法对于我们管理自己的VPS主机是非常有必要的,本篇文章通过实例来讲解如何使用Linux Crontab命令,不作深入的探究,主要是方便日后的快速查询与参考。

 

一、Crontab查看编辑重启

1、查看crontab定时执行任务列表

crontab -l

2、编辑crontab定时执行任务

crontab -e

3、删除crontab定时任务

crontab -r

4、相关命令:

sudo service crond start     #启动服务sudo service crond stop      #关闭服务sudo service crond restart   #重启服务sudo service crond reload    #重新载入配置sudo service crond status    #查看服务状态

二、Crontab基本格式语法

crontab 的时间表达式:

基本格式 :          command分 时 日 月 周 命令

先来看一个例子。每天凌晨1:00执行备份程序:0 1 /root/backup.sh 。其中/root/backup.sh 这是脚本路径,要使用绝对路径,前面的日期格式请直接看下图就知道了。

crontab还有操作符,用来实现一些复杂的时间设定需要。操作符有:

1、 取值范围内的所有数字 ,代表所有。

2、/ 每过多少个数字 ,代表每隔n长时间。

3、- 从X到Z ,代表一段时间范围。

4、,散列数字,代表分割开多个值。

PS:2018年4月15日更新,如果还有搞不懂代码公式的,可以使用这个在线Cron表达式生成器:http://cron.qqe2.com/

三、20个经典Crontab应用实例

以脚本/root/backup.sh 为演示,大家在使用时记得替换为自己的脚本路径。

 

实例1:每1分钟执行一次

     /root/backup.sh

实例2:每小时的第3和第15分钟执行一次

3,15     /root/backup.sh

实例3:每天的8点到11点的第3和第15分钟执行一次

3,15 8-11    /root/backup.sh

实例4:每隔两天的上午8点到11点的第3和第15分钟执行一次

3,15 8-11 /2     /root/backup.sh

实例5:每周一上午8点到11点的第3和第15分钟执行一次

3,15 8-11   1 /root/backup.sh

实例6:每晚的21:30执行一次

30 21    /root/backup.sh

实例7:每月1、10、22日的4 : 45执行一次

45 4 1,10,22   /root/backup.sh

实例8:每周六、周日的1 : 10执行一次

10 1   6,0 /root/backup.sh

实例9:每天18 : 00至23 : 00之间每隔30分钟执行一次

0,30 18-23    /root/backup.sh

实例10:每星期六的晚上23: 00 pm执行一次

0 23   6 /root/backup.sh

实例11:每一小时执行一次

 /1    /root/backup.sh

实例12:每天晚上23点到第二天7点之间,每隔一小时执行一次

 23-7/1    /root/backup.sh

实例13: 每个星期的第一天执行一次(即每个星期天晚上24:00开始执行).

@weekly /root/backup.sh

实例14:每个月的15日执行一次.

0 11 15   /root/backup.sh

实例15:每个月的第一天执行一次(即每个月的1日凌晨0点开始执行).

@monthly /root/backup.sh

实例16: 在指定的月份执行一次(在1月,4月和 6月每天晚上0点执行一次).

0 0  jan,apr,jun  /root/backup.sh

实例17: 重启后执行一次.

@reboot /root/backup.sh

实例18:定时任务执行后发一封邮件通知.

MAILTO="raj"1 1    /root/backup.sh

实例19:指定shell (默认的是/bin/bash)

SHELL=/bin/sh1 1    /root/backup.sh

实例20:指定环境变量.

PATH=/sbin:/bin:/usr/sbin:/usr/bin 1 1    /root/backup.sh

四、Crontab可能存在的问题

4.1  Crontab不立即生效

大家新建的Crontab定时任务保存后需要等待2分钟后才会执行,当然如果想要立即执行可以重启Crontab。当crontab失效时,可以尝试/etc/init.d/crond restart解决问题,或者查看日志看某个任务有没有执行/报错tail -f /var/log/cron。

4.2  Crontab不执行

脚本中涉及文件路径时写全局路径,更新系统时间时区后需要重启cron。当手动执行脚本OK,但是crontab死活不执行时很有可能是环境变量,可尝试在crontab中直接引入环境变量解决问题,例如:

0     . /etc/profile;/bin/sh /root/backup.sh

4.3  Crontab无权限执行

要注意系统级任务调度与用户级任务调度。只有 root 用户和 crontab 文件的所有者可以在 -e 、-l-r 和 -v标志后面使用 UserName 以编辑、列出、除去或验证指定用户的 crontab 文件。

root用户的任务调度操作可以通过”crontab –uroot –e”来设置,也可以将调度任务直接写入/etc/crontab文件。

想编辑别的用户的 crontab, 使用root运行下面的命令,同一个格式 (追加 “-u username” 到命令后) 也可以用来列出或删除 crontabs。

 crontab -u username -e

4.4  Crontab执行后通知

当Crontab定时任务在你所指定的时间执行后,系统会寄一封信给你,显示该程序执行的内容,可以在日志中/var/log/cron看到。若是你不希望收到这样的通知,请在每一行空一格之后加上 > /dev/null 2>&1 即可。

 

全文转载修改来自:挖站否


Warning: in_array() expects parameter 2 to be array, null given in /www/users/HK1590886/WEB/usr/plugins/TopLamuLeimu/Plugin.php on line 85