当前位置: 操作系统/服务器>linux
本页文章导读:
▪设置Serv-U FTP 支持被动模式连接 ,530错误等解决办法集锦
设置Serv-U FTP 支持被动模式连接 一大早被朋友说ftp始终连不上去,我自己去掉被动模式就可以连接。 这个问题困扰了 我好长时间,是下面这篇文章解决了它。特在这里留个备份。 我的问题.........
▪Serv_U 安全设置以后出现530 Not logged in, home directory does not exist的解决方法
一般情况都是因为文件的上级目录不存在浏览权限。一般情况下,我们创建ftpadmin用户。文件结构如 : d:\wwwroot\那么需要给wwwroot如下权限然后给ftpadmin用户目录的全部权限,完全控制以外的.........
▪linux crontab实例分析
设置每一分钟执行一次我的程序: # crontab -e * */1 * * * /home/lfzhou/vhost/vhost /sbin/service crond stop //关闭服务 /sbin/service crond start //启动服务 或 /sbin/service crond reload //重新载入配置 cron是一个linux下.........
[1]设置Serv-U FTP 支持被动模式连接 ,530错误等解决办法集锦
来源: 互联网 发布时间: 2013-12-24
设置Serv-U FTP 支持被动模式连接
一大早被朋友说ftp始终连不上去,我自己去掉被动模式就可以连接。
这个问题困扰了 我好长时间,是下面这篇文章解决了它。特在这里留个备份。
我的问题是没有进行相应的端口设置。
设置支持被动(PASV)模式连接:
本地服务器--》设置--》高级--》PASV 端口范围--》写上范围,听说得写上4000以后的,可以写上5000-5005--》FTP设置完毕
进入本地连接属性--》TCP/IP属性--》高级--》选项--》TCP/IP筛选--》属性--》如果 启动 TCP/IP 筛选(所有适配器) 是选中的(不是的话直接关闭)--》只允许里添加上 TCP端口:5000,5001,5002,5003
设置PASV常见的错误:
[右] 数据 Socket 错误: 连接被拒
[右] 列表错误
原因: Serv-U上设置的PASV端口号在网卡TCP/IP上没有开解决方法参照最上面
网上提供相关介绍二:
FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。
PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器从20端口向客户端的空闲端口发送连接请求,建立一条数据链路来传送数据。
PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端向服务器的空闲端口发送连接请求,建立一条数据链路来传送数据。
因为PORT方式在传送数据时,由服务器主动连接客户端,所以,如果客户端在防火墙或NAT网关后面,用PORT方式将无法与Internet上的 FTP服务器传送文件。这种情况需要使用PASV方式。几乎所有的ftp客户端软件都支持这两种方式。特殊的典型例子是ie,ie默认是用PORT方式的。如果要在ie里启用PASV方式,请打开ie,在菜单里选择:工具 -> Internet选项 -> 高级,在“使用被动ftp”前面打上钩(需要IE6.0以上才支持)。
软件环境: Serv-U 5.x以上 Windows2000|Windows2003平台 本文以英文版为例,中文版用户自行翻译
注意事项:
一.进入serv-u管理界面,Settings--Advenced中的PASV port range设置端口范围,本人估计的设置标准如下(非官方的标准):
ftp服务平均在线人数超过100人 建议端口范围在30-40,如填写10000-10035
ftp服务平均在线人数30-60人 建议端口范围在20左右,如填写10000-10020
ftp服务平均在线人数5-20人左右 建议端口范围在5-10,如填写10000-10010
二.在Domains--(建立的域,如本站域设置为ftp.yongfa365.com)--Settings--Advenced中Allow passive mode data transfers,use ip这个前面的框选中,use ip不需要填写
三.重新启动serv-u服务,可以在命令行模式下运行netstat -an|more查看tcp的1000-100xx的端口是否已经正常开放
四.如果tcp/ip筛选,ip安全策略,网络防火墙中限制了以上pasv端口,应该先解除屏蔽
网上提供相关介绍二:
有许多朋友的 FTP 服务器是不支持 PASV 模式的,登入時要取消 PASV 模式才行。现将几种 FTP 下载工具的取消方法公布如 下:
1.把 flashget 的 pasv 模式关掉的方法
点菜单上的“工具"->“选项"->“代理服务器"-> “直接连接"->编辑->把“ pasv 模式"前的勾勾去掉,一路确定回来。
2.把 Cutftp 的 pasv 模式关掉的方法
点菜单上的“文件"->“站点管理"->在“站点管理器"窗口 ->“新建站点"->填上“域名"->“编辑"->“常规"-> 把“使用 pasv 模式"前的勾勾去掉。
3.把 FlashFXP 的 pasv 模式关掉的方法
点菜单上的“站点"->“站点管理器"->站点管理器窗口-> “新建站点"->填上“域名"->“选项"->把“使用被动模式"前的勾勾去掉->“应用" 即可。
4.把 NetAnts 的 pasv 模式关掉的方法
点菜单上的"选项"->"参数设置"->"代理"->“直接连接"->编辑->把“ pasv 模式"前的勾勾去掉,一路确定回来。
相信大家都知道FTP是什么啦,但我相还有很多人不知道什么是PASV和PORT,或者你知道但不知道他们到底是什么。
下面介绍一下这两种模式吧:
PORT其实是Standard模式的另一个名字,又称为Active模式。中文意思是“主动模式。
PASV也就是Passive的简写。中文就是“被动模式。
两者之间有什么不同:
不同之处是由于PORT这个方式需要在接上TCP 21端口后,服务器通过自己的TCP 20来发出数据。并且需要建立一个新的连接来传送档案。而PORT的命令包含一些客户端没用的资料,所以有了PASv的出现。
而PASV模式就当然拥有PORT模式的优点及去掉一些PORT的缺点。PASV运行方式就是当服务器接收到PASV命令时,就会自动从端口1024到5000中随机选择,而且还会使用同一个端口来传送数据,不用建立新的连接
PASV方式设置:
所有FTP服务器软件都支持PORT方式。大部分FTP服务器软件PORT方式和PASV方式都支持。Serv-U默认配置下两种方式都支持。如果要关闭PASV方式,请打开Serv-U,进入 Domains -> user.dns0755.net -> Settings -> Advanced -> 把“Allow passive mode data transfers"前面的钩去掉。
使用内网标准版的用户,不能取消PASV方式。
PASV方式与防火墙的问题:
公网和内网TrueHost用户,如果安装了防火墙,需要在防火墙上打开一些端口给FTP的PASV模式使用,否则使用PASV模式无法登录。在 Serv-U的Local Server -> Settings -> Advanced -> PASV port range里,填入给PASV模式使用的本地端口范围,如60000-60020。如果使用Win 9x/Me,请把端口范围限制在5个以内,如果使用Win NT/2000/XP/2003,请把端口范围限制在20个以内。之后,再在防火墙里打开这个范围的端口就可以了。
使用内网标准版的用户不需要设置此选项。
防火墙的设置方法
注:Win XP自带的防火墙会自动为FTP打开PASV端口,如果使用Win XP防火墙就不需要设置。
公网+端口映射的注意事项:
通过ADSL共享器/路由器或其他网关上网,采用网关端口映射而使用公网动态域名的用户,建立FTP服务器,用PORT方式访问是没问题的,要用PASV方式访问,需要做如下设置:
1、在Domains -> user.dns0755.net里选择“Enable dynamic DNS"。之后,右边会多出一个选项“Dynamic DNS"。点击“Dynamic DNS",在“IP name"里输入域名“user.dns0755.net",“IP address"留空不设。按“F5"即可得到IP地址。点击“Apply"保存设置。
2、参考上面的“PASV方式与防火墙的问题"中的说明,设置PASV端口范围,例如 60000 - 60020。
3、在网关(ADSL共享器/路由器)上为PASV端口设置映射。例如把网关的 60000 - 60020 端口映射到本机的 60000 - 60020 端口。
设置了端口后成功链接了
一大早被朋友说ftp始终连不上去,我自己去掉被动模式就可以连接。
这个问题困扰了 我好长时间,是下面这篇文章解决了它。特在这里留个备份。
我的问题是没有进行相应的端口设置。
设置支持被动(PASV)模式连接:
本地服务器--》设置--》高级--》PASV 端口范围--》写上范围,听说得写上4000以后的,可以写上5000-5005--》FTP设置完毕
进入本地连接属性--》TCP/IP属性--》高级--》选项--》TCP/IP筛选--》属性--》如果 启动 TCP/IP 筛选(所有适配器) 是选中的(不是的话直接关闭)--》只允许里添加上 TCP端口:5000,5001,5002,5003
设置PASV常见的错误:
[右] 数据 Socket 错误: 连接被拒
[右] 列表错误
原因: Serv-U上设置的PASV端口号在网卡TCP/IP上没有开解决方法参照最上面
网上提供相关介绍二:
FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。
PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器从20端口向客户端的空闲端口发送连接请求,建立一条数据链路来传送数据。
PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端向服务器的空闲端口发送连接请求,建立一条数据链路来传送数据。
因为PORT方式在传送数据时,由服务器主动连接客户端,所以,如果客户端在防火墙或NAT网关后面,用PORT方式将无法与Internet上的 FTP服务器传送文件。这种情况需要使用PASV方式。几乎所有的ftp客户端软件都支持这两种方式。特殊的典型例子是ie,ie默认是用PORT方式的。如果要在ie里启用PASV方式,请打开ie,在菜单里选择:工具 -> Internet选项 -> 高级,在“使用被动ftp”前面打上钩(需要IE6.0以上才支持)。
软件环境: Serv-U 5.x以上 Windows2000|Windows2003平台 本文以英文版为例,中文版用户自行翻译
注意事项:
一.进入serv-u管理界面,Settings--Advenced中的PASV port range设置端口范围,本人估计的设置标准如下(非官方的标准):
ftp服务平均在线人数超过100人 建议端口范围在30-40,如填写10000-10035
ftp服务平均在线人数30-60人 建议端口范围在20左右,如填写10000-10020
ftp服务平均在线人数5-20人左右 建议端口范围在5-10,如填写10000-10010
二.在Domains--(建立的域,如本站域设置为ftp.yongfa365.com)--Settings--Advenced中Allow passive mode data transfers,use ip这个前面的框选中,use ip不需要填写
三.重新启动serv-u服务,可以在命令行模式下运行netstat -an|more查看tcp的1000-100xx的端口是否已经正常开放
四.如果tcp/ip筛选,ip安全策略,网络防火墙中限制了以上pasv端口,应该先解除屏蔽
网上提供相关介绍二:
有许多朋友的 FTP 服务器是不支持 PASV 模式的,登入時要取消 PASV 模式才行。现将几种 FTP 下载工具的取消方法公布如 下:
1.把 flashget 的 pasv 模式关掉的方法
点菜单上的“工具"->“选项"->“代理服务器"-> “直接连接"->编辑->把“ pasv 模式"前的勾勾去掉,一路确定回来。
2.把 Cutftp 的 pasv 模式关掉的方法
点菜单上的“文件"->“站点管理"->在“站点管理器"窗口 ->“新建站点"->填上“域名"->“编辑"->“常规"-> 把“使用 pasv 模式"前的勾勾去掉。
3.把 FlashFXP 的 pasv 模式关掉的方法
点菜单上的“站点"->“站点管理器"->站点管理器窗口-> “新建站点"->填上“域名"->“选项"->把“使用被动模式"前的勾勾去掉->“应用" 即可。
4.把 NetAnts 的 pasv 模式关掉的方法
点菜单上的"选项"->"参数设置"->"代理"->“直接连接"->编辑->把“ pasv 模式"前的勾勾去掉,一路确定回来。
相信大家都知道FTP是什么啦,但我相还有很多人不知道什么是PASV和PORT,或者你知道但不知道他们到底是什么。
下面介绍一下这两种模式吧:
PORT其实是Standard模式的另一个名字,又称为Active模式。中文意思是“主动模式。
PASV也就是Passive的简写。中文就是“被动模式。
两者之间有什么不同:
不同之处是由于PORT这个方式需要在接上TCP 21端口后,服务器通过自己的TCP 20来发出数据。并且需要建立一个新的连接来传送档案。而PORT的命令包含一些客户端没用的资料,所以有了PASv的出现。
而PASV模式就当然拥有PORT模式的优点及去掉一些PORT的缺点。PASV运行方式就是当服务器接收到PASV命令时,就会自动从端口1024到5000中随机选择,而且还会使用同一个端口来传送数据,不用建立新的连接
PASV方式设置:
所有FTP服务器软件都支持PORT方式。大部分FTP服务器软件PORT方式和PASV方式都支持。Serv-U默认配置下两种方式都支持。如果要关闭PASV方式,请打开Serv-U,进入 Domains -> user.dns0755.net -> Settings -> Advanced -> 把“Allow passive mode data transfers"前面的钩去掉。
使用内网标准版的用户,不能取消PASV方式。
PASV方式与防火墙的问题:
公网和内网TrueHost用户,如果安装了防火墙,需要在防火墙上打开一些端口给FTP的PASV模式使用,否则使用PASV模式无法登录。在 Serv-U的Local Server -> Settings -> Advanced -> PASV port range里,填入给PASV模式使用的本地端口范围,如60000-60020。如果使用Win 9x/Me,请把端口范围限制在5个以内,如果使用Win NT/2000/XP/2003,请把端口范围限制在20个以内。之后,再在防火墙里打开这个范围的端口就可以了。
使用内网标准版的用户不需要设置此选项。
防火墙的设置方法
注:Win XP自带的防火墙会自动为FTP打开PASV端口,如果使用Win XP防火墙就不需要设置。
公网+端口映射的注意事项:
通过ADSL共享器/路由器或其他网关上网,采用网关端口映射而使用公网动态域名的用户,建立FTP服务器,用PORT方式访问是没问题的,要用PASV方式访问,需要做如下设置:
1、在Domains -> user.dns0755.net里选择“Enable dynamic DNS"。之后,右边会多出一个选项“Dynamic DNS"。点击“Dynamic DNS",在“IP name"里输入域名“user.dns0755.net",“IP address"留空不设。按“F5"即可得到IP地址。点击“Apply"保存设置。
2、参考上面的“PASV方式与防火墙的问题"中的说明,设置PASV端口范围,例如 60000 - 60020。
3、在网关(ADSL共享器/路由器)上为PASV端口设置映射。例如把网关的 60000 - 60020 端口映射到本机的 60000 - 60020 端口。
设置了端口后成功链接了
[2]Serv_U 安全设置以后出现530 Not logged in, home directory does not exist的解决方法
来源: 互联网 发布时间: 2013-12-24
一般情况都是因为文件的上级目录不存在浏览权限。一般情况下,我们创建ftpadmin用户。
文件结构如 : d:\wwwroot\
那么需要给wwwroot如下权限
然后给ftpadmin用户目录的全部权限,完全控制以外的都要选上即可。
在serv_u中我们需要定位到得目录是目录。即可。
因为我们服务器开启了防火墙所以需要客户端(flashfxp)被动模式。
详细说明:
Serv_U安装设置以及530 Not logged in, home directory does not exist解决方法
安装程序尽量采用最新版本,避免采用默认安装目录,设置好serv-u目录所在的权限,设置一个复杂的管理员密码。修改serv-u的banner信息,设置被动模式端口范围(4001—4003)在本地服务器中设置中做好相关安全设置:包括检查匿名密码,禁用反超时调度,拦截“FTP bounce”攻击和FXP,对于在30秒内连接超过3次的用户拦截10分钟。域中的设置为:要求复杂密码,目录只使用小写字母,高级中设置取消允许使用MDTM命令更改文件的日期。
更改serv-u的启动用户:在系统中新建一个用户,设置一个复杂点的密码,不属于任何组。将servu的安装目录给予该用户完全控制权限。建立一个FTP根目录,需要给予这个用户该目录完全控制权限,因为所有的ftp用户上传,删除,更改文件都是继承了该用户的权限,否则无法操作文件。另外需要给该目录以上的上级目录给该用户的读取权限,否则会在连接的时候出现530 Not logged in, home directory does not exist。比如在测试的时候ftp根目录为d:\soft\new,必须给d:\soft该用户的读取权限,为了安全取消d:\soft其他文件夹的继承权限。而一般的使用默认的system启动就没有这些问题,因为system一般都拥有这些权限的。
文件结构如 : d:\wwwroot\
那么需要给wwwroot如下权限
然后给ftpadmin用户目录的全部权限,完全控制以外的都要选上即可。
在serv_u中我们需要定位到得目录是目录。即可。
因为我们服务器开启了防火墙所以需要客户端(flashfxp)被动模式。
详细说明:
Serv_U安装设置以及530 Not logged in, home directory does not exist解决方法
安装程序尽量采用最新版本,避免采用默认安装目录,设置好serv-u目录所在的权限,设置一个复杂的管理员密码。修改serv-u的banner信息,设置被动模式端口范围(4001—4003)在本地服务器中设置中做好相关安全设置:包括检查匿名密码,禁用反超时调度,拦截“FTP bounce”攻击和FXP,对于在30秒内连接超过3次的用户拦截10分钟。域中的设置为:要求复杂密码,目录只使用小写字母,高级中设置取消允许使用MDTM命令更改文件的日期。
更改serv-u的启动用户:在系统中新建一个用户,设置一个复杂点的密码,不属于任何组。将servu的安装目录给予该用户完全控制权限。建立一个FTP根目录,需要给予这个用户该目录完全控制权限,因为所有的ftp用户上传,删除,更改文件都是继承了该用户的权限,否则无法操作文件。另外需要给该目录以上的上级目录给该用户的读取权限,否则会在连接的时候出现530 Not logged in, home directory does not exist。比如在测试的时候ftp根目录为d:\soft\new,必须给d:\soft该用户的读取权限,为了安全取消d:\soft其他文件夹的继承权限。而一般的使用默认的system启动就没有这些问题,因为system一般都拥有这些权限的。
[3]linux crontab实例分析
来源: 互联网 发布时间: 2013-12-24
设置每一分钟执行一次我的程序:
# crontab -e
* */1 * * * /home/lfzhou/vhost/vhost
/sbin/service crond stop //关闭服务
/sbin/service crond start //启动服务
或
/sbin/service crond reload //重新载入配置
cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
你也可以将这个服务在系统启动的时候自动启动:
在/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
在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e
进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt
这个格式的前一部分是对时间的设定,后面一部分是要执行的命令,如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径。时间的设定我们有一定的约定,前面五个*号代表五个数字,数字的取值范围和含义如下:
分钟 (0-59)
小時 (0-23)
日期 (1-31)
月份 (1-12)
星期 (0-6)//0代表星期天
除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/"代表每的意思,"*/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。以下举几个例子说明问题:
每天早上6点
0 6 * * * echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。
每两个小时
0 */2 * * * echo "Have a break now." >> /tmp/test.txt
晚上11点到早上8点之间每两个小时,早上八点
0 23-7/2,8 * * * echo "Have a good dream:)" >> /tmp/test.txt
每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * 1-3 command line
1月1日早上4点
0 4 1 1 * command line
每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。
2、编辑/etc/crontab 文件配置cron
cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用 cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号
HOME=/ //使用者运行的路径,这里是根目录
# run-parts
01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本
02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本
22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本
42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本
大家注意"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。
--------------------------------------
基本格式 :
* * * * * command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
crontab文件的一些例子:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启lighttpd 。
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重启lighttpd 。
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重启lighttpd 。
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启lighttpd 。
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重启lighttpd 。
* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启lighttpd
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每隔一小时重启lighttpd
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三的11点重启lighttpd
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一号的4点重启lighttpd
# crontab -e
* */1 * * * /home/lfzhou/vhost/vhost
/sbin/service crond stop //关闭服务
/sbin/service crond start //启动服务
或
/sbin/service crond reload //重新载入配置
cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
你也可以将这个服务在系统启动的时候自动启动:
在/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
在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e
进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt
这个格式的前一部分是对时间的设定,后面一部分是要执行的命令,如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径。时间的设定我们有一定的约定,前面五个*号代表五个数字,数字的取值范围和含义如下:
分钟 (0-59)
小時 (0-23)
日期 (1-31)
月份 (1-12)
星期 (0-6)//0代表星期天
除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/"代表每的意思,"*/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。以下举几个例子说明问题:
每天早上6点
0 6 * * * echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。
每两个小时
0 */2 * * * echo "Have a break now." >> /tmp/test.txt
晚上11点到早上8点之间每两个小时,早上八点
0 23-7/2,8 * * * echo "Have a good dream:)" >> /tmp/test.txt
每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * 1-3 command line
1月1日早上4点
0 4 1 1 * command line
每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。
2、编辑/etc/crontab 文件配置cron
cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用 cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号
HOME=/ //使用者运行的路径,这里是根目录
# run-parts
01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本
02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本
22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本
42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本
大家注意"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。
--------------------------------------
基本格式 :
* * * * * command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
crontab文件的一些例子:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启lighttpd 。
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重启lighttpd 。
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重启lighttpd 。
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启lighttpd 。
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重启lighttpd 。
* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启lighttpd
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每隔一小时重启lighttpd
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三的11点重启lighttpd
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一号的4点重启lighttpd
最新技术文章: