如何在linux下完成定时任务:
linux如何备份.
1. 直接执行PHP脚本, 需要在同一个服务器上执行.
# crontab -e
00 * * * * /usr/local/bin/php /home/htdocs/phptimer.php
2.通过HTTP请求来触发脚本, PHP文件允许不在同一服务器上
# crontab -e
00 * * * * /usr/bin/wget -q -O temp.txt http://www.phptimer.com/phptimer.php
上面是通过wget来请求PHP文件, PHP输出会保存在临时文件temp.txt中
# crontab -e
00 * * * * /usr/bin/curl -o temp.txt http://www.phptimer.com/phptimer.php
上面是通过curl -o来请求PHP文件, PHP输出会保存在临时文件temp.txt中
# crontab -e
00 * * * * lynx -dump http://www.phptimer.com/phptimer.php
上面是通过Lynx文本浏览器来请求PHP文件
① 手动备份数据库(表的)方法
cmd控制台:
mysqldump –u root –proot 数据库 [表名1 表名2..] > 文件路径
比如: 把temp数据库备份到 d:\temp.bak
mysqldump –u root –proot temp > d:\temp.bak
如果你希望备份是,数据库的某几张表
mysqldump –u root –prot temp dept > d:\temp.dept.bak
如何使用备份文件恢复我们的数据.
mysql控制台
source d:\temp.dept.bak
② 使用定时器来自定完成
把备份数据库的指令,写入到 bat文件, 然后通过任务管理器去定时调用 bat文件.
mytask.bat 内容是:
C:\myenv\mysql5.5.27\bin\mysqldump -u root -proot temp dept > d:\temp.dept.bak
☞ 如果你的mysqldump.exe文件路径有空格,则一定要使用 “” 包括.
把mytask.bat 做成一个任务,并定时调用在 2:00 调用一次
步骤 任务计划->增加一个任务,选中你的mytask.bat文件 ,最后配置:
测试ok
现在问题是,每次都是覆盖原来的备份文件,不利用我们分时间段进行备份, 我们可以这样处理; 示意图:
代码是:
mytask2.bat 内容:
C:\myenv\php-5.3.5\php.exe C:\myenv\apache\htdocs\mytask.php
mytask.php代码:
<?php
//定时备份我们的数据库文件
date_default_timezone_set('PRC');
$bakfilename=date("YmdHis",time());
$command="C:\myenv\mysql5.5.27\bin\mysqldump -u root -proot temp dept > d:\\{$bakfilename}";
exec($command);
最后测试ok!
作用是,写一个数据库, 数据库中有三张表,然后每天 2:00 备份一次,文件名以时间来命名. 测试.