Ⅰ Windows备份文件夹脚本.bat
项目有些文件上传到windows系统临时文件,需要定期进行备份。例如我要将D/information/images文件夹及其下所有文件复制到F/Archives文件夹下,方法如下:
1、新建txt文件,输入以下内容
参数解释:
/e:拷贝所有子目录,包括空子目录;
/I: 如果目标文件或目录不存在且拷贝的文件数多于一,则假设目标为目录;
/d:只拷贝文件日期与在目标文件后的文件(即修改过的源文件)
/h:同时拷贝隐藏文件和系统文件
/r:拷贝并覆盖只读文件
/y: 复制文件审核设置(不显示已有文件覆盖确认)
2、保存文本文件后,通过重命名将文件改为".bat"文件
Ⅱ linux 每日自动备份文件的脚本
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
求采纳为满意回答。
Ⅲ linux系统中,写一个shell对指定目录下的文件大于特定值时自动进行备份.加急!
用perl实现较容易
配置文件: /xxx/backup.conf
A 200
B 100
C 50
脚本: /xxx/backup.pl
#!/usr/bin/perl
use strict;
use File::Basename;
# 配置文件名
my $config_file = "/xxx/backup.conf";
# 源目录
my $src_dir = "/tmp";
#备份目录
my $backup_dir = "/xxx/backup";
#当前日期
my $today = `date +%Y%m%d`;
$today =~ s/\n//;
# 读取配置文件
my %conf;
open CONFIG, "<", $config_file;
while(<CONFIG>) {
my($fname, $fsize) = split;
$conf{$fname} = $fsize * 1024 * 1024;
}
close(CONFIG);
# 扫描源目录,附合条件则进行备份
my @files = <$src_dir/*>;
foreach my $file (@files) {
my $file_basename = basename($file);
if ( -f $file && $conf{$file_basename}) {
if( -s $file > $conf{$file_basename} ) {
system "cp ${file} ${backup_dir}/${file_basename}.${today}";
if($?) {
#遇到错误就退出
die " ${file} to ${backup_dir}/${file_basename}.${today} failed!\n";
}
unlink ${file};
}
}
}