专注业务连续性支持与数据保护
2009-06-19技术合集

linux 的计划任务crontab已关闭评论

linux 的计划任务crontab

任务调度的crond常驻命令
crond 是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。而linux任务调度的工作主要分为以下两类:
1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
2、个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置。

一、任务调度设置文件的写法
其格式如下:
Minute Hour Day Month Dayofweek command
分钟 小时 天 月 天每星期 命令

每个字段代表的含义如下:
Minute 每个小时的第几分钟执行该任务
Hour 每天的第几个小时执行该任务
Day 每月的第几天执行该任务
Month 每年的第几个月执行该任务
DayOfWeek 每周的第几天执行该任务
Command 指定要执行的程序
在这些字段里,除了”Command”是每次都必须指定的字段以外,其它字段皆为可选字段,可视需要决定。对于不指定的字段,要用”*”来填补其位置。

举例如下:
1、指定每小时的第5分钟执行一次ls命令
5 * * * * ls

2、指定每天的 5:30 执行ls命令
30 5 * * * ls

3、指定每月8号的7:30分执行ls命令
30 7 8 * * ls

4、指定每年的6月8日5:30执行ls命令
30 5 8 6 * ls

5、指定每星期日的6:30执行ls命令
30 6 * * 0 ls
注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。

6、每月10号及20号的3:30执行ls命令
30 3 10,20 * * ls
注:”,”用来连接多个不连续的时段

7、每天8-11点的第25分钟执行ls命令
25 8-11 * * * ls
注:”-“用来连接连续的时段

8、每15分钟执行一次ls命令
*/15 * * * * ls
即每个小时的第0 15 30 45 60分钟执行ls命令

9、每个月中,每隔10天6:30执行一次ls命令
30 6 */10 * * ls
即每月的1、11、21、31日是的6:30执行一次ls命令。

10、每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件
50 7 * * * root run-parts /etc/cron.daily
注:run-parts参数表示,执行后面目录中的所有可执行文件。

二、新增调度任务
新增调度任务可用两种方法:
1、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
2、直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。

三、查看调度任务
crontab -l //列出当前的所有调度任务
crontab -l -u jp //列出用户jp的所有调度任务

四、删除任务调度工作
crontab -r //删除所有任务调度工作

五、任务调度执行结果的转向
例1:每天5:30执行ls命令,并把结果输出到/jp/test文件中
30 5 * * * ls >/jp/test 2>&1
注:2>&1 表示执行结果及错误信息。

编辑/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”这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。

2009-06-18技术合集

Centos无盘工作站安装配置已关闭评论

Centos无盘工作站安装配置

一、新建目录

Mkdir -p /diskless/x86_64/centos5.2/root

Mkdir /diskless/x86_64/centos5.2/snapshot

二、拷贝模板到/diskless/x86_64/centos5.2/root目录

rsync -auv -e ssh –delete –exclude=’/proc/*’ –exclude=’/sys/*’ –exclude=’/tmp/*’–exclude=’/var/log/*’ root@10.0.70.72:/ /diskless/x86_64/centos5.2/root/

三、配置tftp服务

Yum -y install tftp tftp-server

Yum -y install busybox

Vi /etc/xinetd/tftp

Diskable=no

Chkconfig –level 345 xinetd on

Chkconfig –level 345 tftp on

Service xinetd start

四、配置dhcp服务

Yum -y install dhcp-server

Chkconfig –level 345 dhcpd on


Vi /etc/dhcpd.conf

allow booting;

allow bootp;

class “pxeclients” {

match if substring(option vendor-class-identifier, 0, 9) = “PXEClient”;

next-server <server-ip>;

filename “linux-install/pxelinux.0”;

}

Service dhcpd start

五、配置nfs服务

Yum -y install portmap nfs

Vi /etc/exports

/diskless/x86_64/centos5.2/root *(ro,sync,no_root_squash)

/diskless/x86_64/centos5.2/snapshot/ *(rw,sync,no_root_squash)

Service portmap start

Service nfs start

六、配置无盘环境

If starting the Network Booting Tool for the first time, select Diskless from the First Time Druid. Otherwise, select Configure => Diskless from the pull-down menu, and then click Add.

A wizard appears to step you through the process:

1、Click Forward on the first page.

2、On the Diskless Identifier page, enter a Name and Description for the diskless environment. Click Forward.

3、Enter the IP address or domain name of the NFS server configured in Section 4.3 Configuring the NFS Server as well as the directory exported as the diskless environment. Click Forward.

4、The kernel versions installed in the diskless environment are listed. Select the kernel version to boot on the diskless system.

5、Click Apply to finish the configuration.

七、添加工作站

1、Hostname or IP Address/Subnet – Specify the hostname or IP address of a system to add it as a host for the diskless environment. Enter a subnet to specify a group of systems.

2、Operating System – Select the diskless environment for the host or subnet of hosts.

3、Serial Console – Select this checkbox to perform a serial installation.

4、Snapshot name – Provide a subdirectory name to be used to store all of the read/write content for the host.

5、Ethernet – Select the Ethernet device on the host to use to mount the diskless environment. If the host only has one Ethernet card, select eth0.

2009-06-17技术合集

CSS隐藏内容的三种方法比较已关闭评论

CSS隐藏内容的三种方法比较

1.display:none;

搜索引擎可能认为被隐藏的文字属于垃圾信息而被忽略
屏幕阅读器(是为视觉上有障碍的人设计的读取屏幕内容的程序)会忽略被隐藏的文字。

2. visibility: hidden ;
这个大家应该比较熟悉就是隐藏的内容会占据他所应该占据物理空间。

3.overflow:hidden;是比较合理的方法

.texthidden { display:block;/*统一转化为块级元素*/ overflow: hidden; width: 0; height: 0; }

就像上面的一段CSS所展示的方法,将宽度和高度设定为0,然后超过部分隐藏,就会弥补上述一、二方法中的缺陷,也达到了隐藏内容的目的。

2009-06-12技术合集

squid清除缓存脚本已关闭评论

squid清除缓存脚本

  脚本文件名:clear_squid_cache.sh

  #!/bin/sh
  squidcache_path=”/var/spool/squid”
  squidclient_path=”/usr/local/squid/bin/squidclient”
  grep -a -r $1 $squidcache_path/* | strings | grep “http:” | awk -F’http:’ ‘{print “http:”$2;}’ > cache_list.txt
  for url in `cat cache_list.txt`; do
  $squidclient_path -m PURGE -p 8080 $url
  done
  

设置clear_squid_cache.sh可执行权限(命令:chmod +x ./clear_squid_cache.sh)。

  设置:
  squidcache_path= 表示squid缓存目录的路径
  squidclient_path= 表示squidclient程序所在的路径,默认为squid安装目录下的bin/squidclient
  用法:
  1、清除所有Flash缓存(扩展名.doc):
  ./clear_squid_cache.sh doc
  2、清除URL中包含sina.com.cn的所有缓存:
  ./clear_squid_cache.sh sina.com.cn
  3、清除文件名为zhangyan.jpg的所有缓存:
  ./clear_squid_cache.sh test.jpg

2009-06-11技术合集

phpMyadmin中编辑用户权限已关闭评论

phpMyadmin中编辑用户权限

1、新建数据库:

进入phpmyadmin管理界面以后,找到如下文字”创建一个新的数据库”,然后在下面填上要新建的数据库的名称,在后面的下拉列表中选择数据库的编码,一般为”gb2312_chinese_bin”,点击”创建”按钮,这样就新建了一个数据库。

2、新建此数据库的对应帐户

在phpmyadmin管理界面点击”权限”,打开链接,点击”添加新用户”,在打开的页面中会看到”登入信息”,输入用户名、主机(一般为本地:localhost)、密码后,因为我们现在是要给单个用户配置单个数据库的权限,所以我们在这里不选择”全局权限”,然后点击最下面的”执行”按钮,这样就新建了一个用户名。

3、为新建的用户添加此数据库权限

添加完用户以后,管理界面的上方会提示”您已添加了一个新用户”,我们现在就给新建的用户添加权限,在下面找到”按数据库指定权限”,然后点击”在下列数据库添加权限”后面的下拉列表,选择数据库,选择数据下面的全部,然后选择结构除了最下面三个以外的复选框,其他一律不选,然后点击”执行”按钮,这样就配置好了这个用户完全管理这个数据库的权限了。

注:因为我们只是要给这个用户管理这个数据库的全部权限,但是没有其他数据库的管理权限,所以在配置权限的时候一定要注意。

附:在phpmyadmin中显示的用户权限都是英文的,我们在此附上中文翻译:

数据:

Select:允许读取数据。

Insert:允许插入和替换数据。

UPDATA:允许更改数据。

Delete:允许删除数据。

FILE:允许从文件中导入数据以及将数据导出至文件。

结构:

Create:允许创建新数据库和表。

Alter:允许修改现有表的结构。

INDEX:允许创建和删除索引。

Drop:允许删除数据库和表。

Create TEMPORARY TABLES:允许创建暂时表。

Create VIEW:允许创建新的意见。

SHOW VIEW:显示创建的看法。

Create ROUTINE:允许创建存储过程。

Alter ROUTINE:允许改变和下降存储过程。

EXECUTE:允许许执行存储过程。

管理:

GRANT:允许添加用户和权限,而不允许重新载入权限表。

SUPER:允许在达到最大允许数目时仍进行连接。

PROCESS:允许查看进程列表中的完整查询。

RELOAD:允许重新载入服务器设置并刷新服务器的缓存。

SHUTDOWN:允许关闭服务器。

SHOW DATABASES:允许访问完整的数据库列表。

LOCK TABLES:允许锁住当前线索的表。

REFERENCES:在此版本的 MySQL 中无效。

REPLICATION CLIENT:用户有权询问附属者/控制者在哪里。

REPLICATION SLAVE:回复附属者所需。

Create USER:允许创建,下降和重新命名的用户帐户。

2009-06-09技术合集

DoS攻击威胁移动网络安全已关闭评论

DoS攻击威胁移动网络安全

  贝尔实验室高级电信安全研究人员Krishan Sabnani警告,现有的移动IP协议有固有的弱点可被黑客利用,并且很难发现和修复.
  黑客可以用某种类型的攻击例如SYN来迅速耗尽无线互联网上的资源,并可以攻击终端设备,防止移动设备进入睡眠,导致电池使用寿命减短,这是他在纽约市立学院举行的《网络世界》网络基础设施保护会议上报告的.
  更糟糕的是,发动袭击的成本和所造成的后果完全不对等,一个电缆调制解调器用户,500kbps的上传就可以同时攻击超过100万台手机.
  黑客可以挤爆无线网络控制器,伪造合法用户,发送数据包防止移动设备进入睡眠,制造虚假流量和过度扫描端口.
  贝尔实验室宣称他们已经开发出流量特征算法和统计模型以抵御这种攻击,减少不必要的数据传送和终端用户设备电源消耗.

2009-06-06技术合集

Error:Starting NFS quotas: Cannot register service: RPC已关闭评论

Error:Starting NFS quotas: Cannot register service: RPC

  环境:
  client: 主机rac2,ip 192.168.0.6
  server: 主机rac1,ip 192.168.0.5
  1) 在客户端启动portmap和nfs服务,单起nfs进程是无法启动的。
  [root@rac2 init.d]# ./nfs start
  Starting NFS services: [ OK ]
  Starting NFS quotas: Cannot register service: RPC: Unable to receive; errno = Connection refused
  rpc.rquotad: unable to register (RQUOTAPROG, RQUOTAVERS, udp).
  [FAILED]
  Starting NFS daemon:
  [FAILED]
  Starting NFS mountd: Cannot register service: RPC: Unable to receive; errno = Connection refused
  mountd: unable to register (mountd, 1, udp).
  [FAILED]
  Starting RPC idmapd: [ OK ]
  [root@rac2 init.d]# ps -ef|grep nfs
  证明nfs没有启动。
  [root@rac2 init.d]# /etc/init.d/portmap start
  Starting portmap: [ OK ]
  [root@rac2 init.d]# ps -ef|grep portmap
  rpc 3198 1 0 02:39 ? 00:00:00 portmap
  root 3202 2998 0 02:39 pts/0 00:00:00 grep portmap
  [root@rac2 init.d]# /etc/init.d/nfs start
  Starting NFS services: [ OK ]
  Starting NFS quotas: [ OK ]
  Starting NFS daemon: [ OK ]
  Starting NFS mountd: [ OK ]
  启动正常,检查一下nfs进程是否在。
  [root@rac2 init.d]# ps -ef|grep nfs
  root 3222 1 0 02:39 ? 00:00:00 [nfsd]
  root 3223 1 0 02:39 ? 00:00:00 [nfsd]
  root 3224 1 0 02:39 ? 00:00:00 [nfsd]
  root 3225 1 0 02:39 ? 00:00:00 [nfsd]
  root 3226 1 0 02:39 ? 00:00:00 [nfsd]
  root 3227 1 0 02:39 ? 00:00:00 [nfsd]
  root 3228 1 0 02:39 ? 00:00:00 [nfsd]
  root 3231 1 0 02:39 ? 00:00:00 [nfsd]
  root 3260 2998 0 02:45 pts/0 00:00:00 grep nfs
  rac1上有一个/disk0分区,看从rac2能否直接连接上rac1
  [root@rac1 ~]# df -h
  Filesystem Size Used Avail Use% Mounted on
  /dev/sda5 2.9G 2.3G 503M 83% /
  /dev/sda1 99M 12M 83M 12% /boot
  none 125M 0 125M 0% /dev/shm
  /dev/sda2 7.7G 2.3G 5.1G 32% /home
  /dev/sda3 3.9G 2.3G 1.4G 62% /usr
  /dev/sda7 2.8G 1.1G 1.6G 40% /var
  /dev/sdb5 1004M 1.3M 952M 1% /disk0
  [root@rac2 init.d]# mount 192.168.0.5:/disk0 /wyl (/wyl目录必须已存在)
  mount: mount to NFS server ‘192.168.0.5’ failed: System Error: Connection refused.
  报错信息指的是server端(Rac1)的nfs进程没起来!
  在服务端启动nfs进程(实际上是要启动portmap和nfs进程)
  [root@rac1 ~]# /etc/init.d/portmap start
  Starting portmap: [ OK ]
  [root@rac1 ~]# /etc/init.d/nfs start
  Starting NFS services: [ OK ]
  Starting NFS quotas: [ OK ]
  Starting NFS daemon: [ OK ]
  Starting NFS mountd: [ OK ]
  Starting RPC idmapd: [ OK ]