linux 每日自动备份文件的脚本
发布网友
发布时间:2022-04-24 01:35
我来回答
共2个回答
热心网友
时间:2022-05-14 04:32
1、比如每天产生一个/data/access.log这样的文件,我们每天备份到backup目录的access_2011-01-12.log.gz这样的文件。
2、增加计划任务
export
EDITOR=vi
crontab
-e
0
0
*
*
*
/data/bak.sh;
3、bak.sh文件内容如下:
cat
/data/bak.sh
#!/bin/bash
logs_dir=/data
bak_dir=/data/backup
bak_file=access_`date
+%Y%m%d`.log
#
tar
everyday
#echo
"begining
of
tar"
tar
zcf
$bak_dir/$bak_file.gz
$logs_dir/access.log
#
clear
bak_file
#echo
"clearing
file.log"
find
$bak_dir
-mtime
+7
-exec
rm
-rf
{}
\;
#end
求采纳为满意回答。
热心网友
时间:2022-05-14 05:50
2楼说得太玄乎了。
其实很好解决,每次文件被更新后,文件的时间戳也会更新,根据文件的时间戳即可确定该文件是否被更新过。
如果你使用的是redhat,它将cp命令进行过alias,导致cp
-f命令无法去掉提示,因此执行时需要直接调用/bin/cp执行即可,脚本如下:
#!/bin/bash
/bin/cp
-auf
/a/*
/b