2014
08
14
18:49

Apache的prefork模式和worker模式

prefork模式

这个多路处理模块(MPM)实现了一个非线程型的、预派生的web服务器,它的工作方式类似于Apache 1.3。它适合于没有线程安全库,需要避免线程兼容性问题的系统。它是要求将每个请求相互独立的情况下最好的MPM,这样若一个请求出现问题就不会影响到其他请求。

 

这个MPM具有很强的自我调节能力,只需要很少的配置指令调整。最重要的是将MaxClients设置为一个足够大的数值以处理潜在的请求高峰,同时又不能太大,以致需要使用的内存超出物理内存的大小。

 

worker模式

此多路处理模块(MPM)使网络服务器支持混合的多线程多进程。由于使用线程来处理请求,所以可以处理海量请求,而系统资源的开销小于基于进程的MPM。但是,它也使用了多进程,每个进程又有多个线程,以获得基于进程的MPM的稳定性。

 

控制这个MPM的最重要的指令是,控制每个子进程允许建立的线程数的ThreadsPerChild指令,和控制允许建立的总线程数的MaxClients指令。

 

prefork和worker模式的切换

1.将当前的prefork模式启动文件改名

mv httpd httpd.prefork

2.将worker模式的启动文件改名

mv httpd.worker httpd

3.修改Apache配置文件

vi /usr/local/apache2/conf/extra/httpd-mpm.conf

找到里边的如下一段,可适当修改负载等参数:

<IfModule mpm_worker_module>

StartServers 2

MaxClients 150

MinSpareThreads 25

MaxSpareThreads 75

ThreadsPerChild 25

MaxRequestsPerChild 0

</IfModule>

4.重新启动服务

/usr/local/apache2/bin/apachectl restart

即可换成worker方式启动apache2

 

处于稳定性和安全性考虑,不建议更换apache2的运行方式,使用系统默认prefork即可。另外很多php模块不能工作在worker模式下,例如redhat linux自带的php也不能支持线程安全。所以最好不要切换工作模式。

 

prefork和worker模式的比较

prefork模式使用多个子进程,每个子进程只有一个线程。每个进程在某个确定的时间只能维持一个连接。在大多数平台上,Prefork MPM在效率上要比Worker MPM要高,但是内存使用大得多。prefork的无线程设计在某些情况下将比worker更有优势:它可以使用那些没有处理好线程安全的第三方模块,并且对于那些线程调试困难的平台而言,它也更容易调试一些。

 

worker模式使用多个子进程,每个子进程有多个线程。每个线程在某个确定的时间只能维持一个连接。通常来说,在一个高流量的HTTP服务器上,Worker MPM是个比较好的选择,因为Worker MPM的内存使用比Prefork MPM要低得多。但worker MPM也由不完善的地方,如果一个线程崩溃,整个进程就会连同其所有线程一起”死掉”.由于线程共享内存空间,所以一个程序在运行时必须被系统识别为”每个线程都是安全的”。

 

总的来说,prefork方式速度要稍高于worker,然而它需要的cpu和memory资源也稍多于woker。

 

prefork模式配置详解

<IfModule mpm_prefork_module>

ServerLimit 256

StartServers 5

MinSpareServers 5

MaxSpareServers 10

MaxClients 256

MaxRequestsPerChild 0

</IfModule>

ServerLimit

默认的MaxClient最大是256个线程,如果想设置更大的值,就的加上ServerLimit这个参数。20000是ServerLimit这个参数的最大值。如果需要更大,则必须编译apache,此前都是不需要重新编译Apache。

生效前提:必须放在其他指令的前面

 

StartServers

指定服务器启动时建立的子进程数量,prefork默认为5。

 

MinSpareServers

指定空闲子进程的最小数量,默认为5。如果当前空闲子进程数少于MinSpareServers ,那么Apache将以最大每秒一个的速度产生新的子进程。此参数不要设的太大。

 

MaxSpareServers

设置空闲子进程的最大数量,默认为10。如果当前有超过MaxSpareServers数量的空闲子进程,那么父进程将杀死多余的子进程。此参数不要设的太大。如果你将该指令的值设置为比MinSpareServers小,Apache将会自动将其修改成”MinSpareServers+1″。

 

MaxClients

限定同一时间客户端最大接入请求的数量(单个进程并发线程数),默认为256。任何超过MaxClients限制的请求都将进入等候队列,一旦一个链接被释放,队列中的请求将得到服务。要增大这个值,你必须同时增大ServerLimit。

 

MaxRequestsPerChild

每个子进程在其生存期内允许伺服的最大请求数量,默认为10000.到达MaxRequestsPerChild的限制后,子进程将会结束。如果MaxRequestsPerChild为”0″,子进程将永远不会结束。将MaxRequestsPerChild设置成非零值有两个好处:

1.可以防止(偶然的)内存泄漏无限进行,从而耗尽内存。

2.给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。

 

worker模式配置详解

<IfModule mpm_worker_module>

StartServers 2

MaxClients 150

MinSpareThreads 25

MaxSpareThreads 75

ThreadsPerChild 25

MaxRequestsPerChild 0

</IfModule>

 

StartServers

服务器启动时建立的子进程数,默认值是”3″。

 

MaxClients

允许同时伺服的最大接入请求数量(最大线程数量)。任何超过MaxClients限制的请求都将进入等候队列。默认值是”400″,16(ServerLimit)乘以25(ThreadsPerChild)的结果。因此要增加MaxClients的时候,你必须同时增加ServerLimit的值。

 

MinSpareThreads

最小空闲线程数,默认值是”75″。这个MPM将基于整个服务器监视空闲线程数。如果服务器中总的空闲线程数太少,子进程将产生新的空闲线程。

 

MaxSpareThreads

设置最大空闲线程数。默认值是”250″。这个MPM将基于整个服务器监视空闲线程数。如果服务器中总的空闲线程数太多,子进程将杀死多余的空闲线程。MaxSpareThreads的取值范围是有限制的。Apache将按照如下限制自动修正你设置的值:worker要求其大于等于MinSpareThreads加上ThreadsPerChild的和。

 

ThreadsPerChild

每个子进程建立的常驻的执行线程数。默认值是25。子进程在启动时建立这些线程后就不再建立新的线程了。

 

MaxRequestsPerChild

设置每个子进程在其生存期内允许伺服的最大请求数量。到达MaxRequestsPerChild的限制后,子进程将会结束。如果MaxRequestsPerChild为”0″,子进程将永远不会结束。将MaxRequestsPerChild设置成非零值有两个好处:

1.可以防止(偶然的)内存泄漏无限进行,从而耗尽内存。

2.给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。

注意对于KeepAlive链接,只有第一个请求会被计数。事实上,它改变了每个子进程限制最大链接数量的行为。

2014
08
10
21:56

Android出现“Read-only file system”解决办法

操作设备文件系统上的文件结果遇到”… Read-only file system”。

 

解决办法:

1. 最简单的,adb remount

2. 不行的话,adb shell su之后将文件系统remount为读写权限: mount -o remount rw /system。出于安全考虑,记得完事后remount回只读: mount -o ro,remount /system

3. 和方法2类似,mount -o rw,remount -t ext3 /dev/block/mmcblk1p21 /system

2014
08
10
21:51

android手机铃声存放路径

/system/media/audio/ringtones 来电铃声

/system/media/audio/notifications 短信通知铃声

/system/media/audio/alarms 闹钟铃声

2014
07
17
16:08

FreeBSD安装Pure-FTPd及user manager for PureFTPd

1、首先安装需要配置好apache2/mysql/php等服务!前面有过笔记。

2、安装pure-ftpd

cd /usr/ports/ftp/pure-ftpd/

make with_language=simplified-chinese install clean;rehash

安装时,会有选择项;勾选:

MYSQL Support for users in mysql database

PRIVSEP Enable privileges separation

PERUSERLIMITS Per-user concurrency limits

THROTTLING Bandwidth throttling

BANNER Show pure-ftpd welcome upon session start

UTF8 Support for charset conversion (expreimental)

安装完成后 添加pureftpd_enable=”YES”到/etc/rc.conf文件中。

3、创建MySQL数据库,登陆mysql

INSERT INTO mysql.user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv, ssl_cipher, x509_issuer, x509_subject)

VALUES(‘localhost’,’ftp’,PASSWORD(‘tmppasswd’),’Y’,’Y’,’Y’,’Y’,’N’,’N’,’N’,’N’,’N’,’N’,’N’,’N’,’N’,’N’, Hex(“”), Hex(“”), Hex(“”));

 

FLUSH PRIVILEGES;

CREATE DATABASE ftpusers;

USE ftpusers;

 

drop table if exists ftpusers.admin;

CREATE TABLE ftpusers.admin (

Username varchar(35) NOT NULL default ”,

Password char(32) binary NOT NULL default ”,

PRIMARY KEY (Username)

) ;

— Data for table ‘admin’

INSERT INTO ftpusers.admin VALUES (‘Administrator’,MD5(‘tmppasswd’));

— Table structure for table ‘users’

drop table if exists ftpusers.users;

CREATE TABLE ftpusers.users (

`User` varchar(16) NOT NULL default ”,

`Password` varchar(32) binary NOT NULL default ”,

`Uid` int(11) NOT NULL default ’14’,

`Gid` int(11) NOT NULL default ‘5’,

`Dir` varchar(128) NOT NULL default ”,

`QuotaFiles` int(10) NOT NULL default ‘500’,

`QuotaSize` int(10) NOT NULL default ’30’,

`ULBandwidth` int(10) NOT NULL default ’80’,

`DLBandwidth` int(10) NOT NULL default ’80’,

`Ipaddress` varchar(15) NOT NULL default ‘*’,

`Comment` tinytext,

`Status` enum(‘0′,’1’) NOT NULL default ‘1’,

`ULRatio` smallint(5) NOT NULL default ‘1’,

`DLRatio` smallint(5) NOT NULL default ‘1’,

PRIMARY KEY (`User`),

UNIQUE KEY `User` (`User`)

) ;

— Data for table ‘users’

INSERT INTO ftpusers.users VALUES (‘ftpuser_1’,MD5(‘tmppasswd’),65534, 31, ‘/usr’, 100, 50, 75, 75, ‘*’, ‘Ftp user (for example)’, ‘1’, 0, 0);

 

 

配置pure-ftpd.conf

cp /usr/local/etc/pure-ftpd.conf.sample pure-ftpd.conf

编辑pure-ftpd.conf文件 ee pure-ftpd.conf

MySQLConfigFile /usr/local/etc/pureftpd-mysql.conf

CreateHomeDir yes

DisplayDotFiles no

保存退出

配置pureftpd-mysql.conf

cd /usr/local/etc/

fetch http://machiel.generaal.net/files/pureftpd/v2.x/pureftpd-mysql.conf

或者自己网站上镜像下载

/usr/local/etc/rc.d/pure-ftpd restart

 

安装User manager for PureFTPd

cd /usr/ports/www/usermanager/

make install clean;rehash

 

以上全部正确安装完毕后:进入ftp目录下载

http://machiel.generaal.net/files/pureftpd/ftp_v2.1.tar.gz或自己网站镜像

解压后http://ip/ftp/install.php安装即可。

Step [1 – 7]

This configuration script has carried out a few checks to see if everything is ready to start the configuration.

Checking if config.php exists OK!

Checking if config.php is writable OK!

Checking if PHP Extension MYSQL is enabled OK!

Checking if PHP Extension PCRE is enabled OK!

Checking if PHP Extension POSIX is enabled OK!

Checking if PHP Extension SESSION is enabled OK!

Please choose your configuration type:.选择New installation,create a new database.

 

Step [3 – 7]输入正确的root用户和root的密码。

Settings MySQL database.直接按默认设置(要是你改过密码,就输入你的密码)

Step [4 – 7]语言选择中文,选择Quota support,Ratio support(上传下载比可以选择或不选择)按Save按钮保存配置文件,然后点Setp5进行下一步。

Step [5 – 7]这里你可以更改管理员Administator的密码,也可以创建一个自己的帐号代替Administrator

Step [6 – 7]系统有一些提示,说需要编辑那2个配置文件,因为前面已经编辑过了。所以直接下一步。

Step [7 – 7]恭喜你安装完成了。建议把install.php文件更改一下名称

 

2014
07
14
12:00

WindowsXP停服后获取微软update方法

2014年4月8日,微软停止了对Windows XP的支持,不再向该系统提供热修复、产品更新及安全补丁等服务。微软多次表示,XP在无法获取系统更新、安全补丁后极易受到攻击,建议大家抓紧时间升级到Win7或者Win8.1 Update。

事实上,Windows XP仍然有办法能获得微软发布的更新。有德国技术高手在论坛上发布了一则教程,对Windows XP做一些手脚,就能让Windows Update服务器误以为你的XP是Windows Embedded POSReady 2009,从而继续为电脑提供Windows更新和安全补丁。

具体方法:

1、在桌面空白处右键点击,创建一个新的文本文档,可以随意命名,然后将其扩展名更改为.reg,右键点击该文件,选择“编辑”。

2、在打开的窗口中粘贴下列代码并保存:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\WPA\PosReady]

“Installed”=dword:00000001

复制代码双击该.reg文件,重启计算机,然后去检查Windows Update,如果不是人品太差,你就会发现一些新的更新可以下载。Windows XP与Windows Embedded POSReady 2009十分相似,所以你可以安装后者的系统更新来获取微软的保护。与Windows XP不同,Windows Embedded POSReady 2009的官方支持期限截至2019年4月9日,所以你的Windows XP还能在未来5年内继续获取微软更新,除非微软封堵上述伪装手段。

不过还是提醒各位XP用户,如果能够升级到Windows7或者Windows 8.1 Update的话还是建议各位升级啦。

2014
07
09
00:11

禁止显示或发送Apache版本号(设置ServerTokens)

默认地,服务器HTTP响应头会包含apache和php版本号。像下面的,这是有危害的,因为这会让黑客通过知道详细的版本号而发起已知该版本的漏洞攻击。

1.Server: Apache/2.2.17 (Unix) PHP/5.3.5

为了阻止这个,需要在httpd.conf设置ServerTokens为Prod,这会在响应头中显示“Server:Apache”而不包含任何的版本信息。

1.# vi httpd.conf

2.ServerTokens Prod

下面是ServerTokens的一些可能的赋值:

ServerTokens Prod 显示“Server: Apache”

ServerTokens Major 显示 “Server: Apache/2″

ServerTokens Minor 显示“Server: Apache/2.2″

ServerTokens Min 显示“Server: Apache/2.2.17″

ServerTokens OS 显示 “Server: Apache/2.2.17 (Unix)”

ServerTokens Full 显示 “Server: Apache/2.2.17 (Unix) PHP/5.3.5″ (如果你这指定任何的值,这个是默认的返回信息)

2014
06
17
06:35

WGet使用指南

wget是一个从网络上自动下载文件的自由工具。它支持HTTP,HTTPS和FTP协议,可以使用HTTP代理.

 

所谓的自动下载是指,wget可以在用户退出系统的之后在后台执行。这意味这你可以登录系统,启动一个wget下载任务,然后退出系统,wget将在后台执行直到任务完成,相对于其它大部分浏览器在下载大量数据时需要用户一直的参与,这省去了极大的麻烦。

 

wget可以跟踪HTML页面上的链接依次下载来创建远程服务器的本地版本,完全重建原始站点的目录结构。这又常被称作”递归下载”。在递归下载的时候,wget遵循Robot Exclusion标准(/robots.txt). wget可以在下载的同时,将链接转换成指向本地文件,以方便离线浏览。

 

wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性.如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完 毕。如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。

 

wget的常见用法

wget的使用格式

 

Usage: wget [OPTION]… [URL]…

用wget做站点镜像:

wget -r -p -np -k http://dsec.pku.edu.cn/~usr_name/

# 或者

wget -m http://www.tldp.org/LDP/abs/html/

在不稳定的网络上下载一个部分下载的文件,以及在空闲时段下载

wget -t 0 -w 31 -c http://dsec.pku.edu.cn/BBC.avi -o down.log &

# 或者从filelist读入要下载的文件列表

wget -t 0 -w 31 -c -B ftp://dsec.pku.edu.cn/linuxsoft -i filelist.txt -o down.log &

上面的代码还可以用来在网络比较空闲的时段进行下载。我的用法是:在mozilla中将不方便当时下载的URL链接拷贝到内存中然后粘贴到文件filelist.txt中,在晚上要出去系统前执行上面代码的第二条。

 

使用代理下载

wget -Y on -p -k https://sourceforge.net/projects/wvware/

代理可以在环境变量或wgetrc文件中设定

 

# 在环境变量中设定代理

export PROXY=http://211.90.168.94:8080/

# 在~/.wgetrc中设定代理

http_proxy = http://proxy.yoyodyne.com:18023/

ftp_proxy = http://proxy.yoyodyne.com:18023/

wget各种选项分类列表

启动

-V, –version 显示wget的版本后退出

-h, –help 打印语法帮助

-b, –background 启动后转入后台执行

-e, –execute=COMMAND 执行`.wgetrc’格式的命令,wgetrc格式参见/etc/wgetrc或~/.wgetrc

记录和输入文件

-o, –output-file=FILE 把记录写到FILE文件中

-a, –append-output=FILE 把记录追加到FILE文件中

-d, –debug 打印调试输出

-q, –quiet 安静模式(没有输出)

-v, –verbose 冗长模式(这是缺省设置)

-nv, –non-verbose 关掉冗长模式,但不是安静模式

-i, –input-file=FILE 下载在FILE文件中出现的URLs

-F, –force-html 把输入文件当作HTML格式文件对待

-B, –base=URL 将URL作为在-F -i参数指定的文件中出现的相对链接的前缀

–sslcertfile=FILE 可选客户端证书

–sslcertkey=KEYFILE 可选客户端证书的KEYFILE

–egd-file=FILE 指定EGD socket的文件名

下载

–bind-address=ADDRESS 指定本地使用地址(主机名或IP,当本地有多个IP或名字时使用)

-t, –tries=NUMBER 设定最大尝试链接次数(0 表示无限制).

-O –output-document=FILE 把文档写到FILE文件中

-nc, –no-clobber 不要覆盖存在的文件或使用.#前缀

-c, –continue 接着下载没下载完的文件

–progress=TYPE 设定进程条标记

-N, –timestamping 不要重新下载文件除非比本地文件新

-S, –server-response 打印服务器的回应

–spider 不下载任何东西

-T, –timeout=SECONDS 设定响应超时的秒数

-w, –wait=SECONDS 两次尝试之间间隔SECONDS秒

–waitretry=SECONDS 在重新链接之间等待1…SECONDS秒

–random-wait 在下载之间等待0…2*WAIT秒

-Y, –proxy=on/off 打开或关闭代理

-Q, –quota=NUMBER 设置下载的容量限制

–limit-rate=RATE 限定下载输率

目录

-nd –no-directories 不创建目录

-x, –force-directories 强制创建目录

-nH, –no-host-directories 不创建主机目录

-P, –directory-prefix=PREFIX 将文件保存到目录 PREFIX/…

–cut-dirs=NUMBER 忽略 NUMBER层远程目录

HTTP 选项

–http-user=USER 设定HTTP用户名为 USER.

–http-passwd=PASS 设定http密码为 PASS.

-C, –cache=on/off 允许/不允许服务器端的数据缓存 (一般情况下允许).

-E, –html-extension 将所有text/html文档以.html扩展名保存

–ignore-length 忽略 `Content-Length’头域

–header=STRING 在headers中插入字符串 STRING

–proxy-user=USER 设定代理的用户名为 USER

–proxy-passwd=PASS 设定代理的密码为 PASS

–referer=URL 在HTTP请求中包含 `Referer: URL’头

-s, –save-headers 保存HTTP头到文件

-U, –user-agent=AGENT 设定代理的名称为 AGENT而不是 Wget/VERSION.

–no-http-keep-alive 关闭 HTTP活动链接 (永远链接).

–cookies=off 不使用 cookies.

–load-cookies=FILE 在开始会话前从文件 FILE中加载cookie

–save-cookies=FILE 在会话结束后将 cookies保存到 FILE文件中

FTP 选项

-nr, –dont-remove-listing 不移走 `.listing’文件

-g, –glob=on/off 打开或关闭文件名的 globbing机制

–passive-ftp 使用被动传输模式 (缺省值).

–active-ftp 使用主动传输模式

–retr-symlinks 在递归的时候,将链接指向文件(而不是目录)

递归下载

-r, –recursive 递归下载--慎用!

-l, –level=NUMBER 最大递归深度 (inf 或 0 代表无穷).

–delete-after 在现在完毕后局部删除文件

-k, –convert-links 转换非相对链接为相对链接

-K, –backup-converted 在转换文件X之前,将之备份为 X.orig

-m, –mirror 等价于 -r -N -l inf -nr.

-p, –page-requisites 下载显示HTML文件的所有图片

递归下载中的包含和不包含(accept/reject)

-A, –accept=LIST 分号分隔的被接受扩展名的列表

-R, –reject=LIST 分号分隔的不被接受的扩展名的列表

-D, –domains=LIST 分号分隔的被接受域的列表

–exclude-domains=LIST 分号分隔的不被接受的域的列表

–follow-ftp 跟踪HTML文档中的FTP链接

–follow-tags=LIST 分号分隔的被跟踪的HTML标签的列表

-G, –ignore-tags=LIST 分号分隔的被忽略的HTML标签的列表

-H, –span-hosts 当递归时转到外部主机

-L, –relative 仅仅跟踪相对链接

-I, –include-directories=LIST 允许目录的列表

-X, –exclude-directories=LIST 不被包含目录的列表

-np, –no-parent 不要追溯到父目录

2014
06
17
06:10

Linux定时执行任务命令概述:at和crontab

在Linux下要定时执行任务,可以有两种方法实现:at命令和crontab。如果我们只是想要让特定任务运行一次,则可以使用at监控程序;如果是无人作业的情况,那么可以使用cron服务。

 

AD:

 

本文介绍在Linux下的两种定时执行任务的方法:at命令,以及crontab服务。

 

(1)at命令

 

假如我们只是想要让特定任务运行一次,那么,这时候就要用到at监控程序了。

 

设置at命令很简单,指示定运行的时间,那么就会在哪个时候运行。at类似打印 进程,会把任务放到/var/spool/at目录中,到指定时间运行它 。at命令相当于另一个shell,运行at time命令时,它发送一个个命令,可以输入任意命令或者程序。at now + time命令可以在指示任务。

 

假设处理一个大型数据库,要在别人不用系统时去处理数据,比如凌晨3点10分。那么我们就应该先建立/home/kyle/do_job脚本管理数据库,计划处理/home/kyle/do_job文件中的结果。正常方式是这样启动下列命令:

 

# at 2:05 tomorrow

at>/home/kyle/do_job

at> Ctrl+D

AT Time中的时间表示方法

 

———————————————————————–

时 间 例子 说明

———————————————————————–

Minuteat now + 5 minutes任务在5分钟后运行

Hour at now + 1 hour 任务在1小时后运行

Days at now + 3 days 任务在3天后运行

Weeks at now + 2 weeks 任务在两周后运行

Fixed at midnight 任务在午夜运行

Fixed at 10:30pm任务在晚上10点30分

注意:一定要检查一下atq的服务是否启 动,有些操作系统未必是默认启动的,linux默认为不启动,而ubuntu默认为启动的。检查是否启动,用service atd检查语法,用service atd status检查atd的状态,用service atd start启动atd服务。

 

查看at执行的具体内容:一般位于/var/spool/at目录下面, 用vi打开,在最后一部分就是你的执行程序

 

(2)crontab

 

cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:

 

/sbin/service crond start//启动服务

/sbin/service crond stop //关闭服务

/sbin/service crond restart //重启服务

/sbin/service crond reload//重新载入配置

/sbin/service crond status//查看服务状态

你也可以将这个服务在系统启 动的时候自动启动:

 

在/etc/rc.d/rc.local这个脚本的末尾加上:

 

/sbin/service crond start

现在Cron这个服务已经在进程里面了,我们就可以用这个服务了,Cron服务提供以下几种接口供大家使用:

 

1、直接用crontab命令编辑

 

cron服务提供 crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:

 

crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数

crontab -l //列出某个用户cron服务的详细内容

crontab -r //删除某个用户的cron服务

crontab -e //编辑某个用户的cron服务

比如说root查看自己的cron设置:crontab -u root -l

 

再例如,root想删除fred的cron设置:crontab -u fred -r

 

基本格式 :

 

*****command

分  时  日  月  周  命令

第1列表示分钟1~59 每分钟用*或者 */1表示

第2列表示小时1~23(0表示0点)

第3列表示日期1~31

第4列表示月份1~12

第5列标识号星期0~6(0表示星期天)

第6列要运行的命令

crontab文件的一些例子:

 

#每晚的21:30重启apache。

30 21 * * * /usr/local/etc/rc.d/lighttpd restart

 

#每月1、10、22日

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

 

#每天早上6点10分

10 6 * * * date

 

#每两个小时

0 */2 * * * date

 

#晚上11点到早上8点之间每两个小时,早上8点

0 23-7/2,8 * * * date

 

#每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点

0 11 4 * mon-wed date

 

#1月份日早上4点

0 4 1 jan * date

2014
06
12
23:28

/bin/false and /usr/sbin/nologin

要拒绝系统用户登录,可以将其shell设置为/usr/sbin/nologin或者/bin/false

 

# usermod -s | –shell /usr/sbin/nologin username

或者

 

# usermod -s | -shell /bin/false username

/bin/false

 

/bin/false什么也不做只是返回一个错误状态,然后立即退出。将用户的shell设置为/bin/false,用户会无法登录,并且不会有任何提示。

 

/usr/sbin/nologin

 

nologin会礼貌的向用户显示一条信息,并拒绝用户登录:

 

This account is currently not available.

 

有一些软件,比如一些ftp服务器软件,对于本地非虚拟账户,只有用户有有效的shell才能使用ftp服务。这时候就可以使用nologin使用户即不能登录系统,还能使用一些系统服务,比如ftp服务。/bin/false则不行,这是二者的重要区别之一。

 

/etc/nologin

 

如果存在/etc/nologin文件,则系统只允许root用户登录,其他用户全部被拒绝登录,并向他们显示/etc/nologin文件的内容。

 

锁定用户账户

 

# passwd -l | –lock username

#解锁用户账户

 

# passwd -u | –unlock username

删除用户密码

 

# passwd -d | –delete username

===