linux cron 备份文件,linux 下的 cron 和 备份脚本

今天下午写了一个svn服务器的备份脚本,并把它加到定时任务里,实现了每天13:15分压缩一个svn的数据仓库(repository)的目的。

中间碰到一个问题是:

在~/svn/下,把脚本写好,脚本名为svnbk.sh,“./svnbk.sh”运行正常,如下:

tar cjf svn.bk.$(date +%F).tgz  repos/

mv svn.bk.$(date +%F).tgz  svnbk/

但是在配好cron后,发现这个脚本不会运行,经试验发现,其中的路径都应该用绝对路径,否则不能成功。

用了绝对路径后,cron+脚本可以正常运行了,进一步改进: ^_^

用“&&”,或者“;”来分隔几个命令,并用“\”来断行,最后写成的脚本是这样的:

cd ~/svn/ ; \

tar cjf svn.bk.$(date +%F).tgz repos/ ; \

mv svn.bk$(date +%F).tgz tmp/

从这里学来的招数:

另外,将年月日体现在文件名里,从这里来的:

以上是脚本方面,接下来说 cron。

cron 可以用来做周期执行的事,比如,在每天下班时间前10分钟备份今天的代码,下班了,明天再写:)

today is tomorrow, continue...:)

编辑任务的工具是crontab,它按照一定的格式来设置定期任务,格式如下:

minute hour day-of-month month-of-year day-of-week [username] commands

基本语法:

crontab[-u user] {-e|-l|-r}

-e编辑某个用户的cron任务计划

-l列出...

-r删除...

一些有用的规则:

1、不能为空,可以使用通配符*表示任何时间。

2、可以指定多个值,它们之间用逗号间隔。例如:1,3,7。

3、可以指定时间段,用减号间隔。例如:0-6。

4、可以用“/n”表示步长。例如:8-18/2表示时间序列8,10,12,14,16,18

例子:

*/10 6-8 1,15 * *   ls>>/tmp/1.txt

每个月的一号和15号的早上6点到八点,每隔10分钟执行一次命令“ls>>/tmp/1.txt"

每次编辑完某个用户的cron设置后,cron自动在“/var/spool/cron/”下生成一个与此用户同名的文件,此用户的cron信息都记录在 这个文件中,这个文件普通用户不可以直接编辑,只能用crontab -e 来编辑。root用户才可以直接编辑该目录下的任意文件。

cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此,编辑完cron设置,或者“/var/spool/cron/”下的文件修改后不需要重新启动cron服务。

遇到的问题:

在服务器上处于某用户名 a,不能正常的编辑cron的任务,不得己,用root用户登录后,直接在目录“/var/spool/cron/”下编辑“vi a”,保存后即可运行。

一些要点:

1、检查crond服务状态

service crond status

2、不带命令行的crontab将试图从他自己的标准输出中读取crontab内容。这时不要用Ctrl-D退出,那样会删除整个crontab内容,而要使用Ctrl-C退出。

2011.7.12 ______________________________________________________________

两年前的文章,想起来觉得自己进步真的蛮慢...不管怎样,继续前进吧

这次主要是增加一个在删除以前的包的时候,用date 读取前一天时间;这次是从这里知道怎么写的:

显示前一天的日期:

date –date=’1 days ago’ “+%Y-%m-%d”

date -d ’1 days ago’ “+%Y-%m-%d”

date -d yesterday “+%Y-%m-%d”

也可以这样写: 自己的写法 ^_^

date -d "1 day ago" +%F

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值