梦想的生活,就是去新西兰放羊

windows和linux下任务计划:样例

一、Windows下:

  windows下创建bat文件,并写入内容。 然后添加到系统任务计划中, 以一个具有管理员权限的、禁止远程登录的用户定时运行。

 

1. 开机时同步系统时间(这个脚本是运行这2003上的,不敢保证其他系统可用)

@echo off
cd /d "%tmp%"
(
echo With CreateObject^("Microsoft.XMLHTTP"^)
echo .open "get", "http://open.baidu.com/special/time/", False
echo .send
echo WScript.echo DateAdd^("s",CLng^(Left^(Split^(Split^(.responseText,"baidu_time("^)^(1^),")"^)^(0^),10^)^),"1970-1-1 8:00"^)
echo End With
)>gettime.vbs
for /f "tokens=1*" %%i in ('cscript //nologo gettime.vbs') do date %%i & time %%j

  

2.  mysql 每日备份任务。

mysql_backup.bat ,  按 /年月/日.sql 的格式存储。

@echo off 
set FileDir="D:\backup\sql\example.com\"
set FileName="exm_%date:~0,4%%date:~5,2%_%date:~8,2%.sql"
set MysqlDir="C:\webware\mysql 5.1\bin"

rem if not exist %FileDir%  md %FileDir%

%MysqlDir%\mysqldump -uroot -p123456 site_example > %FileDir%%FileName%

  

3. 执行php等web脚本任务  

@ C:\PHP\php.exe -q D:\www\example.com\cron\unpaid_inform.php

  

 

这是一个使用mysql导出语句的方法,由于我服务器是2003,所以写了这个方法。

如果是更高版本的windows服务器, 直接复制mysql目录下/data/里的文件,效率要高一些——因为需要复制ibdata*和ib_logfile*, 所以一旦还原是要还原全部数据库。

 

 

 

二、Linux下:

  linux下的任务计划很简单。

  权限: 添加cron得使该用户有cron使用权。  除root用户外: cron.allow 存在 则 user需要添加到此文件;如果 cron.deny 存在,此列表中的用户将不可使用。优先级 cron.allow  > cron.deny。


  crontab -e 进入编辑当前user的crontab, crontab  -e -u apache 编辑指定用户的。 添加cron如:

  */30 * * * * /.../example.sh  param1

  可以使用 wget 或 bash 脚本来请求网页。

 

  使用场景1:php shell控制crontab。

    我在用php执行shell添加crontab时,  

    exec("echo  $string | crontab --", $last, $status);  

  将整个列表字符串写入到当前user(php使用的, 可能是apache或php-fpm指定的user)的cron列表文件,  在centos系列具体cron文件是 /var/spool/cron/user。

 

  使用场景2:定时备份数据库(mysql)

   建立一个bash脚本

#!/bin/bash
/usr/local/mysql/mysqldump --add-drop-tables --single-transaction --quick -u myaccount -pmypass mydatabase > /var/data/2015-01-01.sql

  * 01 * * *  mysql_backup.sh

 

   crontab 比 windows的任务计划简单得多。

 

posted @ 2013-11-06 10:50  Shautch Donne  阅读(154)  评论(0)    收藏  举报