18

VAR_FILTERS设置为htmlspecialchars会造成提交的数组数据失败

VAR_FILTERS

全局系统变量,设置默认过滤方法,可对GET POST提交的变量名进行过滤。

可设置为VAR_FILTERS=>”htmlspecialchars”,但是这种设置会过滤掉如这种(<input type=”radio” name=”setting[content]” />)形式提交的变量名setting[content],造成提交后获取不到setting。

所以个人感觉,如果没有绝对必要的情况,VAR_FILTERS变量还是默认为空。

22

replace 替换参数

先来看一个简单的例子吧。

替换后的 str 是什么呢?
是 ”123$’321″ 。。。吗??
如果你的浏览器是 IE6-8 的话,确实是这个结果,可是那只是变态IE的结果。
标准浏览器下会是什么呢?

竟然是 ”123321321″ 为什么会是这个结果呢?
还是看权威的文档吧,《Specifying a string as a parameter》。
在这里,我们可以看到 $$, $&, $, $' 和 $n/$nn 的格式。
相信很多学过 js 正则的应该都用印象。
其实我一直以为只有在正则里才能用这些替换参数,直到前些天被坑才真正掌握这个知识点。

其实 $$, $&, $, $’ 在普通字符串替换时也可以使用
$$ 表示 $ 字符
$& 表示匹配到的字符
$` 表示匹配到的字符之前的那部分
$’ 表示匹配到的字符之后的那部分
但是 $n 或 $nn 只有在正则模式捕获组才能使用。

例如

 

11

解决VM虚拟机克隆CentOS6.5后网卡eth0设备无法启动问题的方法

VM克隆centos,发现PING不通,重启一下network服务,发现提示错误信息“Device eth0 does not seem to be present, delaying initialization.”。

弄了很长时间,最后还是在百度文库中找到的解决方案,谢谢万能的百度,在这里做一个记录,直接写流程和命令。方法仅供参考,如有雷同,纯属巧合!

1、删除70-persistent-net.rules

$ rm -f /etc/udev/rules.d/70-persistent-net.rules

2、重启

$ reboot

3、把新生成的70-persistent-net.rules文件中的eth1改为eth0,并记录下些文件中的MAC地址

$ vi /etc/udev/rules.d/70-persistent-net.rules

qq20170111032556

4、编辑网卡eth0配置文件ifcfg-eth0,把这里的MAC地址替换为上面你自己记录MAC地址

$ vi /etc/sysconfig/network-scripts/ifcfg-eth0

5、保存后退出,重启linux,完成。

第二种方法:

这个只是我分析的,是对上一种方法的简化一步而已。

qq20170111024633

我发现克隆后,70-persistent-net.rules这个文件中是存在eth0和eth1的,那么记录中eth1中的MAC记录就是新机器,所以应该直接删除记录有eth0的那行记录,之后把eth1改为eth0,重启,再修改ifcfg-eth0,这样应该是可以的,我没有试。

第三种方法:

克隆后,70-persistent-net.rules这个文件中是存在eth0和eth1的,那么也可以直接再建一个网上配置文件ifcfg-eth1,是要自动获取IP还是手动的,配置内容可以根据自己的实际情况写。

这种也没有测试。

仅供参考,如有雷同,纯属巧合!

十二 30

IIS服务器网站不支持带加号“+”的目录或文件名的解决方案

网站文件目录如/js/jquery-1.6.2+fix-9521.js

在某些IIS服务器中是不支持的,解决方法如下:

打开IIS,点击对应网站(或者当前服务器名,这样是设置整个服务器的);

找到 IIS >> 请求筛选(双击);

看右侧,找到“编辑功能设置”,点击进入;

勾选“允许双重转义”;

完成。

不明白的,加本人QQ

Posted in IIS
十二 10

PHP连接数据库之PDO方法使用学习

PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么 php_mysql.dll、php_pgsql.dll、php_mssql.dll、php_sqlite.dll等等。

1.PDO简介
PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么 php_mysql.dll、php_pgsql.dll、php_mssql.dll、php_sqlite.dll等等。
PHP6中也将默认使用PDO的方式连接,mysql扩展将被作为辅助

2.PDO配置
PHP.ini中,去掉”extension=php_pdo.dll”前面的”;”号,若要连接数据库,还需要去掉与PDO相关的数据库扩展前面的”;”号,然后重启Apache服务器即可。
extension=php_pdo.dll
extension=php_pdo_mysql.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
extension=php_pdo_mssql.dll
extension=php_pdo_odbc.dll
extension=php_pdo_firebird.dll
……

3.PDO连接mysql数据库
new PDO(“mysql:host=localhost;dbname=db_demo”,”root”,”");
默认不是长连接,若要使用数据库长连接,需要在最后加如下参数:
new PDO(“mysql:host=localhost;dbname=db_demo”,”root”,”",”array(PDO::ATTR_PERSISTENT => true) “);

4.PDO常用方法及其应用
PDO::query() 主要是用于有记录结果返回的操作,特别是SELECT操作返回 PDOStatement 对象,失败返回false(当为 PDO::ERRMODE_SILENT,这也是默认的值)
PDO::exec() 主要是针对没有结果集合返回的操作,返回影响行数的(int),如INSERT(插入的行数)、 delete(删除的行数) 、UPDATE(和原数值不等才算)等操作, 失败返回false (当为 PDO::ERRMODE_SILENT,这也是默认的值)
PDO::prepare 执行所有sql,可以完全替代 query,exec的功能
PDO::lastInsertId() 返回上次插入操作,主键列类型是自增的最后的自增ID
PDOStatement::fetch() 是用来获取一条记录
PDOStatement::fetchAll() 是获取所有记录集到一个数组中

5.错误报告是针对执行的sql出错时
PDO::ERRMODE_SILENT(0) :默认 不提示任何错误 ,连接时无论如何都会提示,只有在执行后面的方法时才会起作用
PDO::ERRMODE_WARNING(1) : 警告
PDO::ERRMODE_EXCEPTION(2):异常(推荐使用) 用try catch捕获,也可以手动抛出异常 new PDOException($message, $code, $previous)

6.PDO操作MYSQL数据库实例

 

 

 

 

总结:

1、query和exec都可以执行所有的sql语句,只是返回值不同而已。

2、query可以实现所有exec的功能。

3、当把select语句应用到 exec 时,总是返回 0

注意:批量插入时,依次插入当遇到错误时后面的插入失败,但是前面的会插入成功。

预处理语句(prepare)示例,sql只编译一次,执行相同的sql效率会高。单个相比exec,query效率也高。

 

 

还支持执行时绑定

获取结果

事务举例:

user contribute comments

 

 

 

 

更好的获取条数

 

1、事务通常是通过把一批更改“积蓄”起来然后使之同时生效而实现的;这样做的好处是可以大大地提供这些更改的效率。

2、当脚本结束或连接即将被关闭时,如果尚有一个未完成的事务,那么 PDO 将自动回滚该事务。这种安全措施有助于在脚本意外终止时避免出现不一致的情况——如果没有显式地提交事务,那么假设是某个地方出错了,所以执行回滚来保证数据安全。

3、预处理语句 的好处
1、查询仅需解析(或预处理)一次,但可以用相同或不同的参数执行多次。 2、提供给预处理语句的参数不需要用引号括起来,驱动程序会自动处理。如果应用程序只使用预处理语句,可以确保不会发生S QL 注入。(然而,如果查询的其他部分是由未转义的输入来构建的,则仍存在 SQL 注入的风险)。

4、在事务中,lastInsertId 应该用在 commit之前,否则会得到 0

5、对于大多数数据库,PDOStatement::rowCount() 不能返回受一条 SELECT 语句影响的行数。替代的方法是,使用 PDO::query() 来发出一条和原打算中的SELECT语句有相同条件表达式的 SELECT COUNT(*) 语句,然后用 PDOStatement::fetchColumn() 来取得返回的行数。这样应用程序才能正确执行。

6、quote 增加引号

 

 

 

十二 09

Linux Ubuntu默认防火墙安装、启用、配置、端口、查看状态相关信息

Ubuntu11.04默认的是UFW(ufw 即uncomplicated firewall的简称,不复杂的防火墙,繁琐部分的设置还是需要去到iptables)防火墙,已经支持界面操作了。在命令行运行ufw命令就可以看到提示的一系列可进行的操作

最简单的一个操作:

sudo ufw status(如果你是root,则去掉sudo,ufw status)可检查防火墙的状态,我的返回的是:inactive(默认为不活动)。

sudo ufw version防火墙版本:

ufw 0.29-4ubuntu1
Copyright 2008-2009 Canonical Ltd.

ubuntu 系统默认已安装ufw.

1.安装

sudo apt-get install ufw

2.启用

sudo ufw enable
sudo ufw default deny
运行以上两条命令后,开启了防火墙,并在系统启动时自动开启。关闭所有外部对本机的访问,但本机访问外部正常。

3.开启/禁用

sudo ufw allow|deny [service]
打开或关闭某个端口,例如:
sudo ufw allow smtp 允许所有的外部IP访问本机的25/tcp (smtp)端口
sudo ufw allow 22/tcp 允许所有的外部IP访问本机的22/tcp (ssh)端口
这个很重要,ssh远程登录用于SecureCRT等软件建议开启。或者不要开防火墙。
sudo ufw allow 53 允许外部访问53端口(tcp/udp)
sudo ufw allow from 192.168.1.100 允许此IP访问所有的本机端口
sudo ufw allow proto udp 192.168.0.1 port 53 to 192.168.0.2 port 53
sudo ufw deny smtp 禁止外部访问smtp服务
sudo ufw delete allow smtp 删除上面建立的某条规则

4.查看防火墙状态

sudo ufw status

一般用户,只需如下设置:

sudo apt-get install ufw
sudo ufw enable
sudo ufw default deny

以上三条命令已经足够安全了,如果你需要开放某些服务,再使用sudo ufw allow开启。

开启/关闭防火墙 (默认设置是’disable’)

sudo ufw enable|disable

转换日志状态

sudo ufw logging on|off

设置默认策略 (比如 “mostly open” vs “mostly closed”)

sudo ufw default allow|deny

许 可或者屏蔽端口 (可以在“status” 中查看到服务列表)。可以用“协议:端口”的方式指定一个存在于/etc/services中的服务名称,也可以通过包的meta-data。 ‘allow’ 参数将把条目加入 /etc/ufw/maps ,而 ‘deny’ 则相反。基本语法如下:

sudo ufw allow|deny [service]

显示防火墙和端口的侦听状态,参见 /var/lib/ufw/maps。括号中的数字将不会被显示出来。

sudo ufw status

UFW 使用范例:

允许 53 端口
$ sudo ufw allow 53

禁用 53 端口
$ sudo ufw delete allow 53

允许 80 端口
$ sudo ufw allow 80/tcp

禁用 80 端口
$ sudo ufw delete allow 80/tcp

允许 smtp 端口
$ sudo ufw allow smtp

删除 smtp 端口的许可
$ sudo ufw delete allow smtp

允许某特定 IP
$ sudo ufw allow from 192.168.254.254

删除上面的规则
$ sudo ufw delete allow from 192.168.254.254

linux 2.4内核以后提供了一个非常优秀的防火墙工具:netfilter/iptables,他免费且功能强大,可以对流入、流出的信息进行细化控制,它可以 实现防火墙、NAT(网络地址翻译)和数据包的分割等功能。netfilter工作在内核内部,而iptables则是让用户定义规则集的表结构。

但是iptables的规则稍微有些“复杂”,因此ubuntu提供了ufw这个设定工具,以简化iptables的某些设定,其后台仍然是 iptables。ufw 即uncomplicated firewall的简称,一些复杂的设定还是要去iptables。

ufw相关的文件和文件夹有:

/etc /ufw/:里面是一些ufw的环境设定文件,如 before.rules、after.rules、sysctl.conf、ufw.conf,及 for ip6 的 before6.rule 及 after6.rules。这些文件一般按照默认的设置进行就ok。

若开启ufw之 后,/etc/ufw/sysctl.conf会覆盖默认的/etc/sysctl.conf文件,若你原来的/etc/sysctl.conf做了修 改,启动ufw后,若/etc/ufw/sysctl.conf中有新赋值,则会覆盖/etc/sysctl.conf的,否则还以/etc /sysctl.conf为准。当然你可以通过修改/etc/default/ufw中的“IPT_SYSCTL=”条目来设置使用哪个 sysctrl.conf.
/var/lib/ufw/user.rules 这个文件中是我们设置的一些防火墙规则,打开大概就能看明白,有时我们可以直接修改这个文件,不用使用命令来设定。修改后记得ufw reload重启ufw使得新规则生效。

下面是ufw命令行的一些示例:

ufw enable/disable:打开/关闭ufw

ufw status:查看已经定义的ufw规则

ufw default allow/deny:外来访问默认允许/拒绝

ufw allow/deny 20:允许/拒绝 访问20端口,20后可跟/tcp或/udp,表示tcp或udp封包。

ufw allow/deny servicename:ufw从/etc/services中找到对应service的端口,进行过滤。

ufw allow proto tcp from 10.0.1.0/10 to 本机ip port 25:允许自10.0.1.0/10的tcp封包访问本机的25端口。

ufw delete allow/deny 20:删除以前定义的”允许/拒绝访问20端口”的规则

十二 08

太神奇了

网站用着百度的免费版云加速,刚才发文章可能是有敏感字符,被禁。

那么就进云加速增加一条白名单吧,结果发现增加白名单要收费了。

因为没钱,所以只好选择关闭“Web应用防火墙”,发布完文章,点击查看,“秒进”。

就我这个站来讲,关闭云加速后,提速有200%左右。

原来之前网站这么慢的原因在这里啊,真是太愁人了。

我不是污蔑,这是事实,当然优点也是有的,优点大于缺点,继续使用。

最近想好好研究下Linux,感觉挺好,学习中…

十二 08

Linux find命令查找文件及文件夹

查找目录:find /(查找范围) -name ‘查找关键字’ -type d
查找文件:find /(查找范围) -name 查找关键字 -print

如果需要更进一步的了解,可以参看Linux的命令详解。

这里摘抄如下:

·find path -option [ -print ] [ -exec -ok command ] {} /;
#-print 将查找到的文件输出到标准输出
#-exec command {} /; —–将查到的文件执行command操作,{} 和 /;之间有空格
#-ok 和-exec相同,只不过在操作前要询用户

====================================================

-name filename #查找名为filename的文件
-perm #按执行权限来查找
-user username #按文件属主来查找
-group groupname #按组来查找
-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime -n +n #按文件访问时间来查
-perm #按执行权限来查找
-user username #按文件属主来查找
-group groupname #按组来查找
-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime -n +n #按文件访问时间来查找文件,-n指n天以内,+n指n天以前
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer f1 !f2 找文件,-n指n天以内,+n指n天以前
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer f1 !f2 #查更改时间比f1新但比f2旧的文件
-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size n[c] #查长度为n块[或n字节]的文件
-depth #使查找在进入子目录前先行查找完本目录
-fstype #查更改时间比f1新但比f2旧的文件
-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size n[c] #查长度为n块[或n字节]的文件
-depth #使查找在进入子目录前先行查找完本目录
-fstype #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
-mount #查文件时不跨越文件系统mount点
-follow #如果遇到符号链接文件,就跟踪链接所指的文件
-cpio #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
-mount #查文件时不跨越文件系统mount点
-follow #如果遇到符号链接文件,就跟踪链接所指的文件
-cpio #对匹配的文件使用cpio命令,将他们备份到磁带设备中
-prune #忽略某个目录

====================================================
$find ~ -name “*.txt” -print #在$HOME中查.txt文件并显示
$find . -name “*.txt” -print
$find . -name “[A-Z]*” -pri26nbsp; #对匹配的文件使用cpio命令,将他们备份到磁带设备中
-prune #忽略某个目录

=====================================================
$find ~ -name “*.txt” -print #在$HOME中查.txt文件并显示
$find . -name “*.txt” -print
$find . -name “[A-Z]*” -print #查以大写字母开头的文件
$find /etc -name “host*” -print #查以host开头的文件
$find . -name “[a-z][a-z][0--9][0--9].txt” -print #查以两个小写字母和两个数字开头的txt文件
$find . -perm 755 -print
$find . -perm -007 -exec ls -l {} /; #查所有用户都可读写执行的文件同-perm 777
$find . -type d -print
$find . ! -type d -print
$find . -type l -print

$find . -size +1000000c -print #查长度大于1Mb的文件
$find . -size 100c -print # 查长度为100c的文件
$find . -size +10 -print #查长度超过期作废10块的文件(1块=512字节)

$cd /
$find etc home apps -depth -print | cpio -ivcdC65536 -o /dev/rmt0
$find /etc -name “passwd*” -exec grep “cnscn” {} /; #看是否存在cnscn用户
$find . -name “yao*” | xargs file
$find . -name “yao*” | xargs echo “” > /tmp/core.log
$find . -name “yao*” | xargs chmod o-w

======================================================

find -name april* 在当前目录下查找以april开始的文件
find -name april* fprint file 在当前目录下查找以april开始的文件,并把结果输出到file中
find -name ap* -o -name may* 查找以ap或may开头的文件
find /mnt -name tom.txt -ftype vfat 在/mnt下查找名称为tom.txt且文件系统类型为vfat的文件
find /mnt -name t.txt ! -ftype vfat 在/mnt下查找名称为tom.txt且文件系统类型不为vfat的文件
find /tmp -name wa* -type l 在/tmp下查找名为wa开头且类型为符号链接的文件
find /home -mtime -2 在/home下查最近两天内改动过的文件
find /home -atime -1 查1天之内被存取过的文件
find /home -mmin +60 在/home下查60分钟前改动过的文件
find /home -amin +30 查最近30分钟前被存取过的文件
find /home -newer tmp.txt 在/home下查更新时间比tmp.txt近的文件或目录
find /home -anewer tmp.txt 在/home下查存取时间比tmp.txt近的文件或目录
find /home -used -2 列出文件或目录被改动过之后,在2日内被存取过的文件或目录
find /home -user cnscn 列出/home目录内属于用户cnscn的文件或目录
find /home -uid +501 列出/home目录内用户的识别码大于501的文件或目录
find /home -group cnscn 列出/home内组为cnscn的文件或目录
find /home -gid 501 列出/home内组id为501的文件或目录
find /home -nouser 列出/home内不属于本地用户的文件或目录
find /home -nogroup 列出/home内不属于本地组的文件或目录
find /home -name tmp.txt -maxdepth 4 列出/home内的tmp.txt 查时深度最多为3层
find /home -name tmp.txt -mindepth 3 从第2层开始查
find /home -empty 查找大小为0的文件或空目录
find /home -size +512k 查大于512k的文件
find /home -size -512k 查小于512k的文件
find /home -links +2 查硬连接数大于2的文件或目录
find /home -perm 0700 查权限为700的文件或目录
find /tmp -name tmp.txt -exec cat {} /;
find /tmp -name tmp.txt -ok rm {} /;

find / -amin -10 # 查找在系统中最后10分钟访问的文件
find / -atime -2 # 查找在系统中最后48小时访问的文件
find / -empty # 查找在系统中为空的文件或者文件夹
find / -group cat # 查找在系统中属于 groupcat的文件
find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件
find / -mtime -1 #查找在系统中最后24小时里修改过的文件
find / -nouser #查找在系统中属于作废用户的文件
find / -user fred #查找在系统中属于FRED这个用户的文件

查当前目录下的所有普通文件
——————————————————————————–

# find . -type f -exec ls -l {} /;
-rw-r–r– 1 root root 34928 2003-02-25 ./conf/httpd.conf
-rw-r–r– 1 root root 12959 2003-02-25 ./conf/magic
-rw-r–r– 1 root root 180 2003-02-25 ./conf.d/README
查当前目录下的所有普通文件,并在- e x e c选项中使用ls -l命令将它们列出

=================================================
在/ l o g s目录中查找更改时间在5日以前的文件并删除它们:
$ find logs -type f -mtime +5 -exec -ok rm {} /;

=================================================
查询当天修改过的文件
[root@book class]# find ./ -mtime -1 -type f -exec ls -l {} /;

=================================================
查询文件并询问是否要显示
[root@book class]# find ./ -mtime -1 -type f -ok ls -l {} /;
< ls … ./classDB.inc.PHP > ? y
-rw-r–r– 1 cnscn cnscn 13709 1月 12 12:22 ./classDB.inc.php
[root@book class]# find ./ -mtime -1 -type f -ok ls -l {} /;
< ls … ./classDB.inc.php > ? n
[root@book class]#

=================================================
查询并交给awk去处理
[root@book class]# who | awk ‘{print $1″/t”$2}’
cnscn pts/0

=================================================
awk—grep—sed

[root@book class]# df -k | awk ‘{print $1}’ | grep -v ‘none’ | sed s”///dev////g”
文件系统
sda2
sda1
[root@book class]# df -k | awk ‘{print $1}’ | grep -v ‘none’
文件系统
/dev/sda2
/dev/sda1

1)在/tmp中查找所有的*.h,并在这些文件中查找“SYSCALL_VECTOR”,最后打印出所有包含”SYSCALL_VECTOR”的文件名

A) find /tmp -name “*.h” | xargs -n50 grep SYSCALL_VECTOR
B) grep SYSCALL_VECTOR /tmp/*.h | cut -d’:’ -f1| uniq > filename
C) find /tmp -name “*.h” -exec grep “SYSCALL_VECTOR” {} /; -print

2)find / -name filename -exec rm -rf {} /;
find / -name filename -ok rm -rf {} /;

3)比如要查找磁盘中大于3M的文件:
find . -size +3000k -exec ls -ld {} ;

4)将find出来的东西拷到另一个地方
find *.c -exec cp ‘{}’ /tmp ‘;’

如果有特殊文件,可以用cpio,也可以用这样的语法:
find dir -name filename -print | cpio -pdv newdir

6)查找2004-11-30 16:36:37时更改过的文件
# A=find ./ -name "*php" | ls -l –full-time $A 2>/dev/null | grep “2004-11-30 16:36:37″

十二 08

systemctl 命令完全指南

Systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器。

Systemd是一个系统管理守护进程、工具和库的集合,用于取代System V初始进程。Systemd的功能是用于集中管理和配置类UNIX系统。

在Linux生态系统中,Systemd被部署到了大多数的标准Linux发行版中,只有为数不多的几个发行版尚未部署。Systemd通常是所有其它守护进程的父进程,但并非总是如此。

使用Systemctl管理Linux服务
使用Systemctl管理Linux服务
本文旨在阐明在运行systemd的系统上“如何控制系统和服务”。

Systemd初体验和Systemctl基础

1. 首先检查你的系统中是否安装有systemd并确定当前安装的版本

上例中很清楚地表明,我们安装了215版本的systemd。

2. 检查systemd和systemctl的二进制文件和库文件的安装位置

3. 检查systemd是否运行

注意:systemd是作为父进程(PID=1)运行的。在上面带(-e)参数的ps命令输出中,选择所有进程,(-a)选择除会话前导外的所有进程,并使用(-f)参数输出完整格式列表(即 -eaf)。

也请注意上例中后随的方括号和例子中剩余部分。方括号表达式是grep的字符类表达式的一部分。

4. 分析systemd启动进程

5. 分析启动时各个进程花费的时间

6. 分析启动时的关键链

重要:Systemctl接受服务(.service),挂载点(.mount),套接口(.socket)和设备(.device)作为单元。

7. 列出所有可用单元

8. 列出所有运行中单元

9. 列出所有失败单元

10. 检查某个单元(如 cron.service)是否启用

11. 检查某个单元或服务是否运行

使用Systemctl控制并管理服务

12. 列出所有服务(包括启用的和禁用的)

13. Linux中如何启动、重启、停止、重载服务以及检查服务(如 httpd.service)状态

注意:当我们使用systemctl的start,restart,stop和reload命令时,我们不会从终端获取到任何输出内容,只有status命令可以打印输出。

14. 如何激活服务并在启动时启用或禁用服务(即系统启动时自动启动服务)

15. 如何屏蔽(让它不能启动)或显示服务(如 httpd.service)

16. 使用systemctl命令杀死服务

 使用Systemctl控制并管理挂载点

17. 列出所有系统挂载点

18. 挂载、卸载、重新挂载、重载系统挂载点并检查系统中挂载点状态

19. 在启动时激活、启用或禁用挂载点(系统启动时自动挂载)

20. 在Linux中屏蔽(让它不能启用)或可见挂载点

 使用Systemctl控制并管理套接口

21. 列出所有可用系统套接口

22. 在Linux中启动、重启、停止、重载套接口并检查其状态

23. 在启动时激活套接口,并启用或禁用它(系统启动时自启动)

24. 屏蔽(使它不能启动)或显示套接口

服务的CPU利用率(分配额)

25. 获取当前某个服务的CPU分配额(如httpd)

注意:各个服务的默认CPU分配份额=1024,你可以增加/减少某个进程的CPU分配份额。

26. 将某个服务(httpd.service)的CPU分配份额限制为2000 CPUShares/

注意:当你为某个服务设置CPUShares,会自动创建一个以服务名命名的目录(如 httpd.service),里面包含了一个名为90-CPUShares.conf的文件,该文件含有CPUShare限制信息,你可以通过以下方式查看该文件:

27. 检查某个服务的所有配置细节

28. 分析某个服务(httpd)的关键链

29. 获取某个服务(httpd)的依赖性列表

30. 按等级列出控制组

31. 按CPU、内存、输入和输出列出控制组

 控制系统运行等级

32. 启动系统救援模式

33. 进入紧急模式

34. 列出当前使用的运行等级

35. 启动运行等级5,即图形模式

36. 启动运行等级3,即多用户模式(命令行)

36. 设置多用户模式或图形模式为默认运行等级

37. 重启、停止、挂起、休眠系统或使系统进入混合睡眠

对于不知运行等级为何物的人,说明如下。

Runlevel 0 : 关闭系统
Runlevel 1 : 救援?维护模式
Runlevel 3 : 多用户,无图形系统
Runlevel 4 : 多用户,无图形系统
Runlevel 5 : 多用户,图形化系统
Runlevel 6 : 关闭并重启机器