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

crontab详解已关闭评论

crontab详解

  基本格式 :
  *  *  *  *  *  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重启apache。
  45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
  上面的例子表示每月1、10、22日的4 : 45重启apache。
  10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
  上面的例子表示每周六、周日的1 : 10重启apache。
  0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
  上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
  0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
  上面的例子表示每星期六的11 : 00 pm重启apache。
  * */1 * * * /usr/local/etc/rc.d/lighttpd restart
  每一小时重启apache
  * 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
  晚上11点到早上7点之间,每隔一小时重启apache
  0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
  每月的4号与每周一到周三的11点重启apache
  0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
  一月一号的4点重启apache
  名称 : crontab
  使用权限 : 所有使用者
  使用方式 :
  crontab file [-u user]-用指定的文件替代目前的crontab。
  crontab-[-u user]-用标准输入替代目前的crontab.
  crontab-1[user]-列出用户目前的crontab.
  crontab-e[user]-编辑用户目前的crontab.
  crontab-d[user]-删除用户目前的crontab.
  crontab-c dir- 指定crontab的目录。
  crontab文件的格式:M H D m d cmd.
  M: 分钟(0-59)。
  H:小时(0-23)。
  D:天(1-31)。
  m: 月(1-12)。
  d: 一星期内的天(0~6,0为星期天)。
  cmd要运行的程序,程序被送入sh执行,这个shell只有USER,HOME,SHELL这三个环境变量
  说明 :
  crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。
  参数 :
  crontab -e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
  crontab -r : 删除目前的时程表
  crontab -l : 列出目前的时程表
  crontab file [-u user]-用指定的文件替代目前的crontab。
  时程表的格式如下 :
  f1 f2 f3 f4 f5 program
  其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。
  当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推
  当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
  当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推
  当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,其馀类推
  使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。
  例子 :
  #每天早上7点执行一次 /bin/ls :
  0 7 * * * /bin/ls
  在 12 月内, 每天的早上 6 点到 12 点中,每隔3个小时执行一次 /usr/bin/backup :
  0 6-12/3 * 12 * /usr/bin/backup
  周一到周五每天下午 5:00 寄一封信给 alex@domain.name :
  0 17 * * 1-5 mail -s “hi” alex@domain.name < /tmp/maildata
  每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分….执行 echo “haha”
  20 0-23/2 * * * echo “haha”
  注意 :
  当程序在你所指定的时间执行后,系统会寄一封信给你,显示该程序执行的内容,若是你不希望收到这样的信,请在每一行空一格之后加上 > /dev/null 2>&1 即可
  例子2 :
  #每天早上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
  范例
  $crontab -l 列出用户目前的crontab. 本文出自 51CTO.COM技术博客

2009-07-02技术合集

linux下.cpio.gz文件的解压已关闭评论

linux下.cpio.gz文件的解压

在linux下装oracle的时候发现了自己不会操作后缀为.cpio.gz文件,后来在网上查了一下,发现了它的解决方法,现写出来供大家参考:

首先,该文件是一个经过压缩的文件,当然要先解压了,这些大家都非常清楚的,就是用

#gunzip 文件名.cpio.gz

这样文件就解压成为 “文件名.cpio” 了,然后再对它进行cpio操作

#cpio -idmv < 文件名.cpio

这样就将cpio文件彻底暴露在我们面前了

2009-06-30技术合集

Drupal的计划任务设定(Drupal CRON TASKS)已关闭评论

Drupal的计划任务设定(Drupal CRON TASKS)

  Drupal的很多功能都是依赖CRON TASKS来完成的,比如搜索的索引,还有Cache的清理,所以CRON对于Drupal来说是很重要的。今天终于把我的Cron tasks搞定了,下面说说我的经历。我是自己的服务器,虚拟主机一半是不能自己设定Cron tasks的,但有一些网站免费提供这个功能。对于drupal来说,只要定时访问根目录下面的cron.php文件,然后就会自动执行一连串的任务,所以我们要做就是定时访问一下这个文件。我的服务器装的是CentOS 4.5系统,所以下面我先说说linux(unix和freebsd也通用)下面的Cron。
  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/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号HOME=/ //使用者运行的路径,这里是根目录# run-parts01 * * * * 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”这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。
  到目前为止大家应该知道怎么设Cron task了,下面我们就把Drupal的Cron加进去。
  1、在控制台输入 crontab -r username -e,其中username就是你的用户名,如果就为当前用户设定cron task,也可以不用-r username参数;
  2、输入0 * * * * wget -O – -q -t 1 http://www.yoururl.com/cron.php,表示每小时运行一次。也可以将第一个”*”后面加上/2,/3,/4等表示每2,3,4小时运行一次,或者第二个”*”后面加上/1,/2,/3表示每1,2,3天运行一次。
  3、”Shift键+z”键保存并退出,然后运行”/sbin/service crond restart”。
  好了,到此为止,linux下面的Cron task就设定好了。
  Windows主机可以通过设定计划任务,执行的任务也是访问那个网址或者用下载那个文件。

2009-06-29技术合集

网站宕机监控服务介绍已关闭评论

网站宕机监控服务介绍

  网站最重要的就是稳定性,如果网站因为宕机而无法访问,那么对于网站本身来说是一场灾难,网站管理员最重要的职责就是在服务器宕机后第一时间进行恢复,防止网站长时间宕机造成更多损失,因此,网站管理员需要一个对其网站进行24小时不间断的监视的服务,一旦出现无法访问的情况,就立刻通过邮件和短消息通知管理员。
  这里我介绍一些常用的免费网站宕机监控服务。
  SiteUpTime(www.siteuptime.com
  免费用户可以监控一个网站,每半小时监测一次,可监测4个端口,提供4台监测服务器供用户选择,网站不能访问的时候会发送Email通知你。SiteUptime还为免费用户提供统计报告、每月报告邮件等实用服务。
  Site 24×7(site24×7.com)
  免费用户可以每60分钟检测最多2个网站的情况。可以获得邮件或者短信的告警以及报告。新注册用户可以享受15天全功能使用,之后会自动切换为免费帐户。值得注意的是,这个网站提供中文界面,不懂英文的推荐使用这个网站。
  WebPerform(www.webperform.cn
  中文版的网站监测服务,免费用户可以每60分钟监测最多两个网站。
  HostTracker(host-tracker.com)
  免费用户每30分钟监控两个网站。
  网站保姆(http://bm.chinaz.com/
  中国站长站推出的监控服务器在线状态的服务,免费用户可在30分钟监测一个服务器,邮件通知,收费用户有短信通知。
  本文来自: E点废墟(www.xok.la) 详细出处参考:http://xok.la/2009/06/site_jiankong.html

2009-06-29技术合集

FreeBSD安装vim已关闭评论

FreeBSD安装vim

  1.vim6的安装:
  cd /usr/ports/editors/vim6+ruby
  make -DWITHOUT_X11 install clean
  mv /usr/bin/vi /usr/bin/vi.bak
  cp /usr/local/bin/vim /usr/bin/vi

  2. 配置:
  Copy Vim 的配置文件 .vimrc 到使用者根目录,并且加入中文环境设定。
  cp /usr/local/share/vim/vim72/vimrc_example.vim /usr/local/share/vim/vimrc
  cp /usr/local/share/vim/vim72/vimrc_example.vim ~/.vimrc

  3. vim中文的cshrc配置:
  .cshrc里加入以下内容:
  setenv LC_ALL zh_CN.EUC
  setenv LANG zh_CN.EUC
  setenv LC_CTYPE zh_CN.EUC

2009-06-29技术合集

登陆freebsd出现Using keyboard-interactive authentication已关闭评论

登陆freebsd出现Using keyboard-interactive authentication

  putty下用root登陆freebsd出现Using keyboard-interactive authentication的解决

  终端中运行vi /etc/ssh/sshd_config
  把里面的
  #PermitRootLogin no
  #PasswordAuthentication no
  改为
  PermitRootLogin yes
  PasswordAuthentication yes
  保存后重启ssh

  /etc/rc.d/sshd restart
  再登陆就不报错了

2009-06-25技术合集

使用mysqldump备份与恢复数据库实例已关闭评论

使用mysqldump备份与恢复数据库实例

  备份MySQL数据库的命令
  mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql
  备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
  mysqldump –add-drop-table -uusername -ppassword databasename > backupfile.sql
  直接将MySQL数据库压缩备份
  mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz
  备份MySQL数据库某个(些)表
  mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql
  同时备份多个MySQL数据库
  mysqldump -hhostname -uusername -ppassword -databases databasename1 databasename2 databasename3 > multibackupfile.sql
  仅仅备份数据库结构
  mysqldump -no-data -databases databasename1 databasename2 databasename3 > structurebackupfile.sql
  备份服务器上所有数据库
  mysqldump -all-databases > allbackupfile.sql
  还原MySQL数据库的命令
  mysql -hhostname -uusername -ppassword databasename < backupfile.sql
  还原压缩的MySQL数据库
  gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename
  将数据库转移到新服务器
  mysqldump -uusername -ppassword databasename | mysql -host=*.*.*.* -C databasename