不知道从哪里起源的文章了,看着也还好,备用:
/////////////////////////////////////////////////////////////////////
Crontab
a. crontab文件包括在/var/spool/cron/crontabs/username(s)中
查看文件内容
#crontab -l (root 用户)
或 #cd /var/spool/cron/crontabs
#more usernames(s)
下面是root用户的crontab文件内容:
#ident "@(#)root 1.19 98/07/06 SMI" /* SVr4.0 1.1.3.1 */
#
# The root crontab should be used to perform accounting data collection.
#
# The rtc command is run to adjust the real time clock if and when
# daylight savings time changes.
#
10 3 * * 0,4 /etc/cron.d/logchecker
10 3 * * 0 /usr/lib/newsyslog
15 3 * * 0 /usr/lib/fs/nfs/nfsfind
1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c >; /dev/null 2>;&1
30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean
以最后一行为例:
30 命令开始执行的分钟数, 范围为0~59
3 命令开始执行的小时值, 范围为0~23
* 命令开始执行的日期值, 范围为1~31
* 命令开始执行的月份值, 范围为1~12
* 命令开始执行的星期值, 范围为0~6 sunday为0
后面为将要运行的脚本。
b.编辑一个crontab文件
#EDITOR=vi
#export EDITOR
#crontab -e
c.控制crontab访问(执行)
/etc/cron.d/cron.allow
allow 是不缺省的,可以创建,编辑,删除,移动等操作。
/etc/cron.d/cron.deny
deny用户是缺省的, 用于对crontab进行访问控制。
/etc/default/cron
对cron的log进行控制.
下面是cron.deny 的内容:
#more cron.deny
daemon
bin
smtp
nuucp
listen
nobody
noaccess
d.移动改变一个crontab文件
# crontab -r username
一般用户只可以移动自己的crontab文件,但root可以对任何的crontab文件进行操作。
////////////////////////////////////////////////////////////////////////////////
自己的体会:
////////////////////////////////////////////////////////////////////////////////
/sbin/service crond reload
看看你的Crond有没有运行了???
[root@serviceweb-2 bin]# /sbin/service crond reload
Reloading cron daemon configuration: [ OK ]
# ps -ax | grep cron
看看cron有没有运行.
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
bash-2.03# crontab -l >>test.txt /*导出crontab内容中到.txt*/
bash-2.03# vi test.txt /*编写*/
"test.txt" 13 lines, 506 characters
#ident "@(#)root 1.19 98/07/06 SMI" /* SVr4.0 1.1.3.1 */
#
# The root crontab should be used to perform accounting data collection.
#
# The rtc command is run to adjust the real time clock if and when
# daylight savings time changes.
#
10 3 * * 0,4 /etc/cron.d/logchecker
10 3 * * 0 /usr/lib/newsyslog
15 3 * * 0 /usr/lib/fs/nfs/nfsfind
1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1
30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean
5 * * * * echo "ni hao"
~
bash-2.03# crontab test.txt /*导入.txt的内容到crontab中*/
或者直接利用crontab –e 改写保存(内定的文字编译器是VI)。
bash-2.03$ crontab -e
0 0 * * * /usr/radius/bin/rename.sh > /dev/null 2>&1
5 4 * * * /usr/radius/bin/sync_dbfiles > /dev/null 2>&1
5 * * * * /usr/radius/bin/resend.sh > /dev/null 2>&1
15 * * * * /usr/radius/bin/logout.sh > /dev/null 2>&1
35 4 * * * /usr/radius/bin/dellog.sh > /dev/null 2>&1
30 5 * * * /export/home/nevapp/tools/sync_acctdata > /dev/null 2>&1
10,40 * * * * /export/home/nevapp/tools/authcheck.sh > /dev/null 2>&1
30 2 * * * /export/home/nevapp/tools/clearauthlog.sh > /dev/null 2>&1
3,13,23,33,43,53 * * * * /export/home/nevapp/tools/ULOGchk.sh >/dev/null 2>&1
0,10,20,30,40,50 * * * * /export/home/nevapp/tools/cltchk.sh > /dev/null 2>&1
15,45 * * * * /export/home/nevapp/tools/xnchk.sh > /dev/null 2>&1
"/tmp/crontab_xayrh" 11 lines, 700 characters
bash-2.03$ crontab –r /*删除crontab中内容*/
crontab文件的格式:M H D m d cmd.
M: 分钟(0-59)。
H:小时(0-23)。
D:天(1-31)。
m: 月(1-12)。
d: 一星期内的天(0~6,0为星期天)。
注意该指令会输出到一个标准出口 (亦即. 一个终端机 ),像是上面使用 echo'' 的例子会将输出寄
给 root'' 帐号。如果您想要避免它,只要像下面将输出导引到一个空的设备 :
0,10,20,30,40,50 * * * * /export/home/nevapp/tools/cltchk.sh > /dev/null 2>&1
15,45 * * * * /export/home/nevapp/tools/xnchk.sh > /dev/null 2>&1
——手工可行而cron不可行,我的经验是以下二:
1、环境变量——手工运行的环境在crontab调度执行时不存在,所以脚本中应包含环境
2、相对路径——实际上也是环境的问题,哪怕是最常用命令最好也写成绝对路径
——另外,服务是否启动,是否限制该用户使用cron
查看运行log的情况
/var/log/cron,及root亦会收到mail(默认情况).
对于两台主机,我想有两个一样的CRONTAB 任务列表, 我可以把/bin/crontab拷贝过去覆盖吗?还是一定要手工编辑?
答:可以拷贝,文件在/var/spool/cron/...中,是以用户名来命名的,你进去看一眼就知道了。
不需要重启机器,重启服务就可以了
/etc/init.d/cron stop
/etc/init.d/cron start
还有这样打开的时候,原来的crontab文件内容看不到啊
比如:
# crontab -e root
40
?
30 1 * * * CMD
?
这样编辑之后怎么保存呢/?
谢谢!!
答:你把编辑器设为ed了。编辑crontab之前先运行EDITOR=vi; export EDITOR。
/////////////////////////////////////////////////////////////////////
Crontab
a. crontab文件包括在/var/spool/cron/crontabs/username(s)中
查看文件内容
#crontab -l (root 用户)
或 #cd /var/spool/cron/crontabs
#more usernames(s)
下面是root用户的crontab文件内容:
#ident "@(#)root 1.19 98/07/06 SMI" /* SVr4.0 1.1.3.1 */
#
# The root crontab should be used to perform accounting data collection.
#
# The rtc command is run to adjust the real time clock if and when
# daylight savings time changes.
#
10 3 * * 0,4 /etc/cron.d/logchecker
10 3 * * 0 /usr/lib/newsyslog
15 3 * * 0 /usr/lib/fs/nfs/nfsfind
1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c >; /dev/null 2>;&1
30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean
以最后一行为例:
30 命令开始执行的分钟数, 范围为0~59
3 命令开始执行的小时值, 范围为0~23
* 命令开始执行的日期值, 范围为1~31
* 命令开始执行的月份值, 范围为1~12
* 命令开始执行的星期值, 范围为0~6 sunday为0
后面为将要运行的脚本。
b.编辑一个crontab文件
#EDITOR=vi
#export EDITOR
#crontab -e
c.控制crontab访问(执行)
/etc/cron.d/cron.allow
allow 是不缺省的,可以创建,编辑,删除,移动等操作。
/etc/cron.d/cron.deny
deny用户是缺省的, 用于对crontab进行访问控制。
/etc/default/cron
对cron的log进行控制.
下面是cron.deny 的内容:
#more cron.deny
daemon
bin
smtp
nuucp
listen
nobody
noaccess
d.移动改变一个crontab文件
# crontab -r username
一般用户只可以移动自己的crontab文件,但root可以对任何的crontab文件进行操作。
////////////////////////////////////////////////////////////////////////////////
自己的体会:
////////////////////////////////////////////////////////////////////////////////
/sbin/service crond reload
看看你的Crond有没有运行了???
[root@serviceweb-2 bin]# /sbin/service crond reload
Reloading cron daemon configuration: [ OK ]
# ps -ax | grep cron
看看cron有没有运行.
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
bash-2.03# crontab -l >>test.txt /*导出crontab内容中到.txt*/
bash-2.03# vi test.txt /*编写*/
"test.txt" 13 lines, 506 characters
#ident "@(#)root 1.19 98/07/06 SMI" /* SVr4.0 1.1.3.1 */
#
# The root crontab should be used to perform accounting data collection.
#
# The rtc command is run to adjust the real time clock if and when
# daylight savings time changes.
#
10 3 * * 0,4 /etc/cron.d/logchecker
10 3 * * 0 /usr/lib/newsyslog
15 3 * * 0 /usr/lib/fs/nfs/nfsfind
1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1
30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean
5 * * * * echo "ni hao"
~
bash-2.03# crontab test.txt /*导入.txt的内容到crontab中*/
或者直接利用crontab –e 改写保存(内定的文字编译器是VI)。
bash-2.03$ crontab -e
0 0 * * * /usr/radius/bin/rename.sh > /dev/null 2>&1
5 4 * * * /usr/radius/bin/sync_dbfiles > /dev/null 2>&1
5 * * * * /usr/radius/bin/resend.sh > /dev/null 2>&1
15 * * * * /usr/radius/bin/logout.sh > /dev/null 2>&1
35 4 * * * /usr/radius/bin/dellog.sh > /dev/null 2>&1
30 5 * * * /export/home/nevapp/tools/sync_acctdata > /dev/null 2>&1
10,40 * * * * /export/home/nevapp/tools/authcheck.sh > /dev/null 2>&1
30 2 * * * /export/home/nevapp/tools/clearauthlog.sh > /dev/null 2>&1
3,13,23,33,43,53 * * * * /export/home/nevapp/tools/ULOGchk.sh >/dev/null 2>&1
0,10,20,30,40,50 * * * * /export/home/nevapp/tools/cltchk.sh > /dev/null 2>&1
15,45 * * * * /export/home/nevapp/tools/xnchk.sh > /dev/null 2>&1
"/tmp/crontab_xayrh" 11 lines, 700 characters
bash-2.03$ crontab –r /*删除crontab中内容*/
crontab文件的格式:M H D m d cmd.
M: 分钟(0-59)。
H:小时(0-23)。
D:天(1-31)。
m: 月(1-12)。
d: 一星期内的天(0~6,0为星期天)。
注意该指令会输出到一个标准出口 (亦即. 一个终端机 ),像是上面使用 echo'' 的例子会将输出寄
给 root'' 帐号。如果您想要避免它,只要像下面将输出导引到一个空的设备 :
0,10,20,30,40,50 * * * * /export/home/nevapp/tools/cltchk.sh > /dev/null 2>&1
15,45 * * * * /export/home/nevapp/tools/xnchk.sh > /dev/null 2>&1
——手工可行而cron不可行,我的经验是以下二:
1、环境变量——手工运行的环境在crontab调度执行时不存在,所以脚本中应包含环境
2、相对路径——实际上也是环境的问题,哪怕是最常用命令最好也写成绝对路径
——另外,服务是否启动,是否限制该用户使用cron
查看运行log的情况
/var/log/cron,及root亦会收到mail(默认情况).
对于两台主机,我想有两个一样的CRONTAB 任务列表, 我可以把/bin/crontab拷贝过去覆盖吗?还是一定要手工编辑?
答:可以拷贝,文件在/var/spool/cron/...中,是以用户名来命名的,你进去看一眼就知道了。
不需要重启机器,重启服务就可以了
/etc/init.d/cron stop
/etc/init.d/cron start
还有这样打开的时候,原来的crontab文件内容看不到啊
比如:
# crontab -e root
40
?
30 1 * * * CMD
?
这样编辑之后怎么保存呢/?
谢谢!!
答:你把编辑器设为ed了。编辑crontab之前先运行EDITOR=vi; export EDITOR。
步骤如下:
1. 确认没有运行ntp daemon。
# /etc/init.d/ntpd stop
2. 在/etc/ntp.conf中写入如下内容:
driftfile /etc/ntp/drift
logfile /var/log/ntp.log
server pool.ntp.org
注意:如果没有drift或logfile,需要手动创建之,并把权限设为root可读写,其他用户只读。
3. 用ntpdate手动更新时间。
这是因为当你的系统时间误差很大,有20~30分钟以上时,ntp的更新将非常慢,而ntpdate的更新一般是很快的。
# ntpdate pool.ntp.org
4. 启动ntp daemon。
# /etc/init.d/ntpd start
5. 检查ntpd的状态。
# ntpq -p如果见到ntp服务器的名字,那就说明启动成功了。
6. 添加ntpd为系统启动服务。
# chkconfig --add ntpd
# chkconfig --level 3 ntpd on
# chkconfig --level 012456 ntpd off
1. 确认没有运行ntp daemon。
# /etc/init.d/ntpd stop
2. 在/etc/ntp.conf中写入如下内容:
driftfile /etc/ntp/drift
logfile /var/log/ntp.log
server pool.ntp.org
注意:如果没有drift或logfile,需要手动创建之,并把权限设为root可读写,其他用户只读。
3. 用ntpdate手动更新时间。
这是因为当你的系统时间误差很大,有20~30分钟以上时,ntp的更新将非常慢,而ntpdate的更新一般是很快的。
# ntpdate pool.ntp.org
4. 启动ntp daemon。
# /etc/init.d/ntpd start
5. 检查ntpd的状态。
# ntpq -p如果见到ntp服务器的名字,那就说明启动成功了。
6. 添加ntpd为系统启动服务。
# chkconfig --add ntpd
# chkconfig --level 3 ntpd on
# chkconfig --level 012456 ntpd off
昨天安装了linux,写几句小总结吧,不然过几天忘记了。
过程其实很简单,不知道为啥,我之前的 MandrakeLinux 安装不了,真分特,试过几个机器都提示没有cdrom,莫非dvdrom安装不了,今天丢了它,四张碟呢。。
用的还是redhat,安装php的时候老提示libxml和autoconf版本不够高,只能安装了,在linux下面安装东西是有点枯燥,看着编译文字一行一行过去。
1 系统安装的时候需要什么软件就安装什么,有不需要的软件服务可以用ntsysv来管理(一直以为是netsysv,郁闷了很久,为啥我的电脑没有这个命令呢。。)
也有用 chkconfig 的
2 最近处理sendmail服务,一直郁闷的是为啥发出的邮件是 root@localhost ,发现跟hosts文件有关:
像上面的,本机ip是147,所以发出的邮件会找到第一条定义自身ip的域名,这个如果是公网ip估计可以让sendmail反查到机器名称,但是可能局域网就不行,第一条也许就是相当于MX记录定义的邮件服务器名称,经过时间的痛苦折磨才知道这样做可以使得发出的邮件正常,但怎么定义多个那就还没知道了。。
修改后重启sendmail还不行,好像得重启网络或者重启机器
3 机器安装后要设定固定IP,否则拿掉显示器后就得完蛋,都不知道远程登陆啥了
参考一下别人的成果:
linux下设置ip方法
最常用的给网卡配置ip的命令为 (注意此方法重启后会失效)
#ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up
说明:
eth0是第一个网卡,其他依次为eth1,eth*
192.168.0.1是给网卡配置的第一个网卡配置的ip地址
netmask 255.255.255.0 配置的是子网掩码
up是表示立即激活
ifconfig的更多参数说明查看相关帮助
手动改/etc/sysconfig/network-scripts/ifcfg-eth0文件
vi打开ifcfg-eth0文件
原内容:
DEVICE=eth0
BOOTPROTO=dhcp
HWADDR=00:03:47:2C:D5:40
ONBOOT=yes
TYPE=Ethernet
改为:
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.223
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
HWADDR=00:0uu3:47:2C:D5:40
ONBOOT=yes
TYPE=Ethernet
分别执行命令
/sbin/ifdown eth0
/sbin/ifup eth0
/etc/init.d/network restart //使设置的网关马上生效
ifup - 代表拨号的连接命令,该命令只要在命令行或终端中可以成功执行就可以了
ifdown - 代表断开连接的命令,同样该命令只要在命令行或终端中可以成功执行就可以了
设置DNS
/etc/resolv.conf
nameserver 202.102.24.35 指定了dns服务器的地址
过程其实很简单,不知道为啥,我之前的 MandrakeLinux 安装不了,真分特,试过几个机器都提示没有cdrom,莫非dvdrom安装不了,今天丢了它,四张碟呢。。
用的还是redhat,安装php的时候老提示libxml和autoconf版本不够高,只能安装了,在linux下面安装东西是有点枯燥,看着编译文字一行一行过去。
1 系统安装的时候需要什么软件就安装什么,有不需要的软件服务可以用ntsysv来管理(一直以为是netsysv,郁闷了很久,为啥我的电脑没有这个命令呢。。)
也有用 chkconfig 的
2 最近处理sendmail服务,一直郁闷的是为啥发出的邮件是 root@localhost ,发现跟hosts文件有关:
[root@box init.d]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost bogon
192.168.1.147 box.aslibra.com
192.168.1.65 test.zcom.com
192.168.1.65 aslibra
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost bogon
192.168.1.147 box.aslibra.com
192.168.1.65 test.zcom.com
192.168.1.65 aslibra
像上面的,本机ip是147,所以发出的邮件会找到第一条定义自身ip的域名,这个如果是公网ip估计可以让sendmail反查到机器名称,但是可能局域网就不行,第一条也许就是相当于MX记录定义的邮件服务器名称,经过时间的痛苦折磨才知道这样做可以使得发出的邮件正常,但怎么定义多个那就还没知道了。。
修改后重启sendmail还不行,好像得重启网络或者重启机器
3 机器安装后要设定固定IP,否则拿掉显示器后就得完蛋,都不知道远程登陆啥了
参考一下别人的成果:
linux下设置ip方法
最常用的给网卡配置ip的命令为 (注意此方法重启后会失效)
#ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up
说明:
eth0是第一个网卡,其他依次为eth1,eth*
192.168.0.1是给网卡配置的第一个网卡配置的ip地址
netmask 255.255.255.0 配置的是子网掩码
up是表示立即激活
ifconfig的更多参数说明查看相关帮助
手动改/etc/sysconfig/network-scripts/ifcfg-eth0文件
vi打开ifcfg-eth0文件
原内容:
DEVICE=eth0
BOOTPROTO=dhcp
HWADDR=00:03:47:2C:D5:40
ONBOOT=yes
TYPE=Ethernet
改为:
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.223
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
HWADDR=00:0uu3:47:2C:D5:40
ONBOOT=yes
TYPE=Ethernet
分别执行命令
/sbin/ifdown eth0
/sbin/ifup eth0
/etc/init.d/network restart //使设置的网关马上生效
ifup - 代表拨号的连接命令,该命令只要在命令行或终端中可以成功执行就可以了
ifdown - 代表断开连接的命令,同样该命令只要在命令行或终端中可以成功执行就可以了
设置DNS
/etc/resolv.conf
nameserver 202.102.24.35 指定了dns服务器的地址
服务器更换后,一直没有办法配置好ftp服务器,用的是vsftp,我尝试过多次,都快腻了,快对ftp没脾气了
但今天改用proftp,至少也做出来了,总算带来一丝惊喜。
先说一下vsftp的配置,其实linux下啥都一个过程:
1 make
2 make install
过程很简单,默认是加入了xinetd的服务,修改 /etc/xinetd.d/vsftpd
disable=yes
拷贝一份配置:
cp vsftpd.conf /etc
改为独立运行模式,然后在/etc/vsftpd.conf加入
listen=yes
放弃匿名用户:
anonymous_enable=NO
local_enable=YES
write_enable=YES
这样就可以启动了:
/usr/local/sbin/vsftpd &
但是,本地测试都很正常,试过两台服务器,都不正常,都出现的是密码错误,登陆不了,汗死,试过旧版本,也依然如此,尝试了网上介绍的方法,都不行,只能放弃
proftp的安装使用有一个网页介绍的非常好,应该是台湾的网站:
简易 FTP Server 架设 -- Pro FTPD
proftp相对来说很简单:
./configure --prefix=/Data/apps/proftpd \
--enable-shadow \
--enable-autoshadow \
--with-modules=mod_ratio:mod_readme:mod_wrap \
&& make && make install
安装完毕~
开始配置了,给出配置的文档参考:
vi /Data/apps/proftpd/etc/proftpd.conf
启动就好了,在服务器上试过也可以了
/Data/apps/proftpd/sbin/proftpd
用户管理可以用ftp组作为所有登录帐号的组,新建用户指定根目录就好,比如:
但今天改用proftp,至少也做出来了,总算带来一丝惊喜。
先说一下vsftp的配置,其实linux下啥都一个过程:
1 make
2 make install
过程很简单,默认是加入了xinetd的服务,修改 /etc/xinetd.d/vsftpd
disable=yes
拷贝一份配置:
cp vsftpd.conf /etc
改为独立运行模式,然后在/etc/vsftpd.conf加入
listen=yes
放弃匿名用户:
anonymous_enable=NO
local_enable=YES
write_enable=YES
这样就可以启动了:
/usr/local/sbin/vsftpd &
但是,本地测试都很正常,试过两台服务器,都不正常,都出现的是密码错误,登陆不了,汗死,试过旧版本,也依然如此,尝试了网上介绍的方法,都不行,只能放弃
proftp的安装使用有一个网页介绍的非常好,应该是台湾的网站:
简易 FTP Server 架设 -- Pro FTPD
proftp相对来说很简单:
./configure --prefix=/Data/apps/proftpd \
--enable-shadow \
--enable-autoshadow \
--with-modules=mod_ratio:mod_readme:mod_wrap \
&& make && make install
安装完毕~
开始配置了,给出配置的文档参考:
vi /Data/apps/proftpd/etc/proftpd.conf
ServerName "ftp site"
ServerType standalone
DefaultServer on
UseReverseDNS off
IdentLookups off
RootLogin off
DefaultRoot ~
AllowStoreRestart on
PassivePorts 20000 30000
TimesGMT off
Port 21
Umask 022
MaxInstances 30
User ftp
Group ftp
<Directory />
AllowOverwrite on
</Directory>
ServerType standalone
DefaultServer on
UseReverseDNS off
IdentLookups off
RootLogin off
DefaultRoot ~
AllowStoreRestart on
PassivePorts 20000 30000
TimesGMT off
Port 21
Umask 022
MaxInstances 30
User ftp
Group ftp
<Directory />
AllowOverwrite on
</Directory>
启动就好了,在服务器上试过也可以了
/Data/apps/proftpd/sbin/proftpd
用户管理可以用ftp组作为所有登录帐号的组,新建用户指定根目录就好,比如:
groupadd ftp
useradd -G ftp -d /Data/webapps ftp_website
passwd ftp_website
#设定密码
useradd -G ftp -d /Data/webapps ftp_website
passwd ftp_website
#设定密码
rsync在linux系统下经常有使用的时候,最近有必要需要知道使用方式,所以必须查相关资料了解一下。文件同步一般适合做文件传输或者文件备份,我们一般可以处理日志的记录和集中统计,也可以作为网站的备份或者镜像,应用很方便,传输也很快。
先看看相关介绍(含原理):
1.1 软件简介
Rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。Rsync本来是用以取代rcp的一个工具,它当前由 rsync.samba.org维护。Rsync使用所谓的“Rsync演算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。运行Rsync server的机器也叫backup server,一个Rsync server可同时备份多个client的数据;也可以多个Rsync server备份一个client的数据。
Rsync可以搭配rsh或ssh甚至使用daemon模式。Rsync server会打开一个873的服务通道(port),等待对方Rsync连接。连接时,Rsync server会检查口令是否相符,若通过口令查核,则可以开始进行文件传输。第一次连通完成时,会把整份文件传输一次,下一次就只传送二个文件之间不同的部份。
Rsync支持大多数的类Unix系统,无论是Linux、Solaris还是BSD上都经过了良好的测试。此外,它在windows平台下也有相应的版本,比较知名的有cwRsync和Sync2NAS。
Rsync的基本特点如下:
1.可以镜像保存整个目录树和文件系统;
2.可以很容易做到保持原来文件的权限、时间、软硬链接等;
3.无须特殊权限即可安装;
4.优化的流程,文件传输效率高;
5.可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接;
6.支持匿名传输。
1.2 核心算法
假定在名为α和β的两台计算机之间同步相似的文件A与B,其中α对文件A拥有访问权,β对文件B拥有访问权。并且假定主机α与β之间的网络带宽很小。那么rsync算法将通过下面的五个步骤来完成:
1.β将文件B分割成一组不重叠的固定大小为S字节的数据块。最后一块可能会比S 小。
2.β对每一个分割好的数据块执行两种校验:一种是32位的滚动弱校验,另一种是128位的MD4强校验。
3.β将这些校验结果发给α。
4.α通过搜索文件A的所有大小为S的数据块(偏移量可以任选,不一定非要是S的倍数),来寻找与文件B的某一块有着相同的弱校验码和强校验码的数据块。这项工作可以借助滚动校验的特性很快完成。
5.α发给β一串指令来生成文件A在β上的备份。这里的每一条指令要么是对文件B经拥有某一个数据块而不须重传的证明,要么是一个数据块,这个数据块肯定是没有与文件B的任何一个数据块匹配上的。
先看看相关介绍(含原理):
1.1 软件简介
Rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。Rsync本来是用以取代rcp的一个工具,它当前由 rsync.samba.org维护。Rsync使用所谓的“Rsync演算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。运行Rsync server的机器也叫backup server,一个Rsync server可同时备份多个client的数据;也可以多个Rsync server备份一个client的数据。
Rsync可以搭配rsh或ssh甚至使用daemon模式。Rsync server会打开一个873的服务通道(port),等待对方Rsync连接。连接时,Rsync server会检查口令是否相符,若通过口令查核,则可以开始进行文件传输。第一次连通完成时,会把整份文件传输一次,下一次就只传送二个文件之间不同的部份。
Rsync支持大多数的类Unix系统,无论是Linux、Solaris还是BSD上都经过了良好的测试。此外,它在windows平台下也有相应的版本,比较知名的有cwRsync和Sync2NAS。
Rsync的基本特点如下:
1.可以镜像保存整个目录树和文件系统;
2.可以很容易做到保持原来文件的权限、时间、软硬链接等;
3.无须特殊权限即可安装;
4.优化的流程,文件传输效率高;
5.可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接;
6.支持匿名传输。
1.2 核心算法
假定在名为α和β的两台计算机之间同步相似的文件A与B,其中α对文件A拥有访问权,β对文件B拥有访问权。并且假定主机α与β之间的网络带宽很小。那么rsync算法将通过下面的五个步骤来完成:
1.β将文件B分割成一组不重叠的固定大小为S字节的数据块。最后一块可能会比S 小。
2.β对每一个分割好的数据块执行两种校验:一种是32位的滚动弱校验,另一种是128位的MD4强校验。
3.β将这些校验结果发给α。
4.α通过搜索文件A的所有大小为S的数据块(偏移量可以任选,不一定非要是S的倍数),来寻找与文件B的某一块有着相同的弱校验码和强校验码的数据块。这项工作可以借助滚动校验的特性很快完成。
5.α发给β一串指令来生成文件A在β上的备份。这里的每一条指令要么是对文件B经拥有某一个数据块而不须重传的证明,要么是一个数据块,这个数据块肯定是没有与文件B的任何一个数据块匹配上的。
这个是收集的资料,因为验证过,所以不妨记录一下,以备有需要的人士参考
执行/usr/local/sbin/vsftpd &之后
vsftpd 的错误提示:500 OOPS: could not bind listening IPv4 socket
遇到这个问题我在通过编译源代码后安装vsftpd的时候遇到的,在这以前我已经通过rpm方式安装过了vsftp
因此其配置文件/etc/xinet.d/vsftpd还在并且是自启动的,也就是说是XINET模式;但是/etc/rc.local中又写入
了启动脚本,因此便发生了冲突,只需要关闭它们中的一个问题就解决了。
有以下两种方式:
1.使用XINET模式
去掉/etc/rc.local文件中的vsftpd的启动脚本/usr/local/sbin/vsftp &
运行service vsftpd restart命令启动vsftpd
2.使用STANDALONE独立模式
在服务器的负担比较重的情况下最好用这个模式
chkconfig vsftpd --level 3 off
或者直接修改/etc/xinetd.d/vsftpd文件,把disable=no改成disable=yes就行了!
摘自:http://blog.csdn.net/happyzhm5/archive/2007/01/06/1475986.aspx
执行/usr/local/sbin/vsftpd &之后
vsftpd 的错误提示:500 OOPS: could not bind listening IPv4 socket
遇到这个问题我在通过编译源代码后安装vsftpd的时候遇到的,在这以前我已经通过rpm方式安装过了vsftp
因此其配置文件/etc/xinet.d/vsftpd还在并且是自启动的,也就是说是XINET模式;但是/etc/rc.local中又写入
了启动脚本,因此便发生了冲突,只需要关闭它们中的一个问题就解决了。
有以下两种方式:
1.使用XINET模式
去掉/etc/rc.local文件中的vsftpd的启动脚本/usr/local/sbin/vsftp &
运行service vsftpd restart命令启动vsftpd
2.使用STANDALONE独立模式
在服务器的负担比较重的情况下最好用这个模式
chkconfig vsftpd --level 3 off
或者直接修改/etc/xinetd.d/vsftpd文件,把disable=no改成disable=yes就行了!
摘自:http://blog.csdn.net/happyzhm5/archive/2007/01/06/1475986.aspx
发现一个挺好的linux笔记的地方,张微波的linux学习笔记。
有一些技巧的笔记都是我觉得很好的参考,也许某一天会用到呢~特别摘录一下vsftp的配置,自己没认真配置过,没有时间,但碰到问题也许可以参考解决呢
作者:龙磊
这是我这个菜鸟学习LINUX所写的第一篇文章,是比较基础的FTP架设的应用,如果我写有什么问题请大家多指教,我后续会陆续出进阶篇把FTP中各种详细的配置跟大家一起进行探讨。
我所用的是LINUX AS+VSFTPD-1.2.0-4的系统架构,在这里说明的是如果对配置文件不是很熟悉,最好做个备份,以免误操作:
1. 匿名服务器的连接(独立的服务器)
在/etc/vsftpd/vsftpd.conf配置文件中添加如下几项:
Anonymous_enable=yes (允许匿名登陆)
Dirmessage_enable=yes (切换目录时,显示目录下.message的内容)
Local_umask=022 (FTP上本地的文件权限,默认是077)
Connect_form_port_20=yes (启用FTP数据端口的数据连接)*
Xferlog_enable=yes (激活上传和下传的日志)
Xferlog_std_format=yes (使用标准的日志格式)
Ftpd_banner=XXXXX (欢迎信息)
Pam_service_name=vsftpd (验证方式)*
Listen=yes (独立的VSFTPD服务器)*
功能:只能连接FTP服务器,不能上传和下传
注:其中所有和日志欢迎信息相关连的都是可选项,打了星号的无论什么帐户都要添加,是属于FTP的基本选项
2. 开启匿名FTP服务器上传权限
在配置文件中添加以下的信息即可:
Anon_upload_enable=yes (开放上传权限)
Anon_mkdir_write_enable=yes (可创建目录的同时可以在此目录中上传文件)
Write_enable=yes (开放本地用户写的权限)
Anon_other_write_enable=yes (匿名帐号可以有删除的权限)
3. 开启匿名服务器下传的权限
在配置文件中添加如下信息即可:
Anon_world_readable_only=no
注:要注意文件夹的属性,匿名帐户是其它(other)用户要开启它的读写执行的权限
(R)读-----下传 (W)写----上传 (X)执行----如果不开FTP的目录都进不去
4.普通用户FTP服务器的连接(独立服务器)
在配置文件中添加如下信息即可:
Local_enble=yes (本地帐户能够登陆)
Write_enable=no (本地帐户登陆后无权删除和修改文件)
功能:可以用本地帐户登陆vsftpd服务器,有下载上传的权限
注:在禁止匿名登陆的信息后匿名服务器照样可以登陆但不可以上传下传
5. 用户登陆限制进其它的目录,只能进它的主目录
设置所有的本地用户都执行chroot
Chroot_local_user=yes (本地所有帐户都只能在自家目录)
设置指定用户执行chroot
Chroot_list_enable=yes (文件中的名单可以调用)
Chroot_list_file=/任意指定的路径/vsftpd.chroot_list
注意:vsftpd.chroot_list 是没有创建的需要自己添加,要想控制帐号就直接在文件中加帐号即可
6. 限制本地用户访问FTP
Userlist_enable=yes (用userlistlai 来限制用户访问)
Userlist_deny=no (名单中的人不允许访问)
Userlist_file=/指定文件存放的路径/ (文件放置的路径)
注:开启userlist_enable=yes匿名帐号不能登陆
7. 安全选项
Idle_session_timeout=600(秒) (用户会话空闲后10分钟)
Data_connection_timeout=120(秒) (将数据连接空闲2分钟断)
Accept_timeout=60(秒) (将客户端空闲1分钟后断)
Connect_timeout=60(秒) (中断1分钟后又重新连接)
Local_max_rate=50000(bite) (本地用户传输率50K)
Anon_max_rate=30000(bite) (匿名用户传输率30K)
Pasv_min_port=50000 (将客户端的数据连接端口改在
Pasv_max_port=60000 50000—60000之间)
Max_clients=200 (FTP的最大连接数)
Max_per_ip=4 (每IP的最大连接数)
Listen_port=5555 (从5555端口进行数据连接)
8. 查看谁登陆了FTP,并杀死它的进程
ps –xf |grep ftp
kill 进程号
有一些技巧的笔记都是我觉得很好的参考,也许某一天会用到呢~特别摘录一下vsftp的配置,自己没认真配置过,没有时间,但碰到问题也许可以参考解决呢
作者:龙磊
这是我这个菜鸟学习LINUX所写的第一篇文章,是比较基础的FTP架设的应用,如果我写有什么问题请大家多指教,我后续会陆续出进阶篇把FTP中各种详细的配置跟大家一起进行探讨。
我所用的是LINUX AS+VSFTPD-1.2.0-4的系统架构,在这里说明的是如果对配置文件不是很熟悉,最好做个备份,以免误操作:
1. 匿名服务器的连接(独立的服务器)
在/etc/vsftpd/vsftpd.conf配置文件中添加如下几项:
Anonymous_enable=yes (允许匿名登陆)
Dirmessage_enable=yes (切换目录时,显示目录下.message的内容)
Local_umask=022 (FTP上本地的文件权限,默认是077)
Connect_form_port_20=yes (启用FTP数据端口的数据连接)*
Xferlog_enable=yes (激活上传和下传的日志)
Xferlog_std_format=yes (使用标准的日志格式)
Ftpd_banner=XXXXX (欢迎信息)
Pam_service_name=vsftpd (验证方式)*
Listen=yes (独立的VSFTPD服务器)*
功能:只能连接FTP服务器,不能上传和下传
注:其中所有和日志欢迎信息相关连的都是可选项,打了星号的无论什么帐户都要添加,是属于FTP的基本选项
2. 开启匿名FTP服务器上传权限
在配置文件中添加以下的信息即可:
Anon_upload_enable=yes (开放上传权限)
Anon_mkdir_write_enable=yes (可创建目录的同时可以在此目录中上传文件)
Write_enable=yes (开放本地用户写的权限)
Anon_other_write_enable=yes (匿名帐号可以有删除的权限)
3. 开启匿名服务器下传的权限
在配置文件中添加如下信息即可:
Anon_world_readable_only=no
注:要注意文件夹的属性,匿名帐户是其它(other)用户要开启它的读写执行的权限
(R)读-----下传 (W)写----上传 (X)执行----如果不开FTP的目录都进不去
4.普通用户FTP服务器的连接(独立服务器)
在配置文件中添加如下信息即可:
Local_enble=yes (本地帐户能够登陆)
Write_enable=no (本地帐户登陆后无权删除和修改文件)
功能:可以用本地帐户登陆vsftpd服务器,有下载上传的权限
注:在禁止匿名登陆的信息后匿名服务器照样可以登陆但不可以上传下传
5. 用户登陆限制进其它的目录,只能进它的主目录
设置所有的本地用户都执行chroot
Chroot_local_user=yes (本地所有帐户都只能在自家目录)
设置指定用户执行chroot
Chroot_list_enable=yes (文件中的名单可以调用)
Chroot_list_file=/任意指定的路径/vsftpd.chroot_list
注意:vsftpd.chroot_list 是没有创建的需要自己添加,要想控制帐号就直接在文件中加帐号即可
6. 限制本地用户访问FTP
Userlist_enable=yes (用userlistlai 来限制用户访问)
Userlist_deny=no (名单中的人不允许访问)
Userlist_file=/指定文件存放的路径/ (文件放置的路径)
注:开启userlist_enable=yes匿名帐号不能登陆
7. 安全选项
Idle_session_timeout=600(秒) (用户会话空闲后10分钟)
Data_connection_timeout=120(秒) (将数据连接空闲2分钟断)
Accept_timeout=60(秒) (将客户端空闲1分钟后断)
Connect_timeout=60(秒) (中断1分钟后又重新连接)
Local_max_rate=50000(bite) (本地用户传输率50K)
Anon_max_rate=30000(bite) (匿名用户传输率30K)
Pasv_min_port=50000 (将客户端的数据连接端口改在
Pasv_max_port=60000 50000—60000之间)
Max_clients=200 (FTP的最大连接数)
Max_per_ip=4 (每IP的最大连接数)
Listen_port=5555 (从5555端口进行数据连接)
8. 查看谁登陆了FTP,并杀死它的进程
ps –xf |grep ftp
kill 进程号






