运行级别和启动脚本

init概述

init是系统引导起来后第一个运行的进程,从很多方面来说,它都是最重要的守护进程。它的进程号始终是1,而且是除了几个系统进程之外所有用户进程的祖先。

init 最主要的功能就是准备软件执行的环境,包括系统的主机名、网络设定、语言、文件系统格式及其他服务的启动等。而所有的动作都会通过 init的配置文件/etc/inittab来规划,而inittab 内还有一个很重要的设定内容,那就是默认的 run level (运行级别)。

init至少定义了7个run revel(运行级别),每一个运行级别都代表着系统应该补充运行的一组特定服务:

  • 0表示关机;
  • 1表示单用户;
  • 2表示没有网络的命令行级别;
  • 3命令行级别(大多服务器都用这个级别);
  • 4为保留级别;
  • 5为图形化级别;
  • 6为重启。

- 阅读剩余部分 -

防火墙:firewalld

一、firewalld的9个zone

通过将网络划分成不同的区域(通常情况下称为zones),制定出不同区域之间的访问控制策略来控制不同程度区域间传送的数据流。

例如:公共 WIFI 网络连接应该不信任,而家庭有线网络连接就应该完全信任。

使用这个命令可以列出它们:

firewall-cmd --get-zones
block drop work internal external home dmz public trusted

drop:(丢弃)
任何接受的网络数据包都被丢弃,不回复。只能出站不能入站。
block:(限制)
任何接受的连接都被IPv4的icmp-host-prohibited信息和IPv6的icmp-adm-prohibited信息拒绝。
public:(公共)
公共区域,允许指定的进入连接。
external:(外部)

- 阅读剩余部分 -

Apache httpd访问日志

Apache的安装之后,服务器一运行就会有两个日志文件生成。这两个文件是access_log和error_log,这些文件可以在/usr/local/apache/logs下找到。

1. 配置访问日志

修改 httpd 的主配置文件,将以下配置前面的注释去掉:

vim /usr/local/apache24/conf/httpd.conf

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common

以上配置参数介绍,这些参数可按需增删,一般默认即可。

%h:远程主机。
%l:远程登录名字(来自identd,如提供的话)。
%u:远程用户(来自auth;如果返回状态(%s)是401则可能是伪造的)
%t:以公共日志时间格式表示的时间(或称为标准英文格式)。

- 阅读剩余部分 -

Nginx访问日志

1. 日志配置

在Nginx的配置文件中:

……省略一些配置……

# 这个是Nginx的日志,已经定义了日志文件的存放路径
error_log /usr/local/nginx/logs/nginx_error.log crit;
……省略一些配置……

http {
……省略一些配置……

    # 这个是网站日志的格式,可以自行调节先后顺序进行排版
    log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'
    ' $host "$request_uri" $status'
    ' "$http_referer" "$http_user_agent"';

……省略一些配置……
}

- 阅读剩余部分 -

Nginx访问控制

1. 用户认证

用户认证用来控制不想让其它用户访问的地址,在虚拟主机配置文件中这样定义:

server
{
    listen 80;
    server_name example.com;
    index index.html index.htm index.php;
    root /data/www/example;

    location  /{
        auth_basic              "Auth";
        auth_basic_user_file   /usr/local/nginx/conf/htpasswd;
    }
}

然后使用Apache的密码工具生成用户密码文件:

htpasswd -c /usr/local/nginx/conf/htpasswd username

- 阅读剩余部分 -

MySQL的三种常见sql_mode

MySQL数据库的中有一个环境变量sql_mode,定义了mysql应该支持的sql语法,数据校验等!

我们可以通过以下方式查看当前数据库使用的sql_mode:

mysql> select @@sql_mode;
+--------------------------------------------+
| @@sql_mode                                 |
+--------------------------------------------+
| STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+
1 row in set (0.00 sec)

以及:

mysql> show variables like 'sql_mode%'\G
*************************** 1. row ***************************
Variable_name: sql_mode
        Value: STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
1 row in set (0.03 sec)

- 阅读剩余部分 -