求助shell:linux 如何指定时间点,然后从某文件夹中获取这时间之后生成的文件,复制到另个文件夹中
例如我想获取5月15号之后文件夹/var/www/html之下的变化的文件,提取出来复制到/opt/backup文件夹下边,请问该怎么操作?最后是shell脚本,谢谢啦...
例如我想获取5月15号之后文件夹/var/www/html之下的变化的文件,提取出来复制到/opt/backup文件夹下边,请问该怎么操作?最后是shell脚本,谢谢啦
展开
3个回答
展开全部
cd /var/www/html
ls -l
找到5月15日之后的文件
cp xxx /opt/backup/
就行了
可以用awk来做:
思路是,用shell 读取需要的时间,传递给awk。
大概是这个样子,没环境,可能还需要改下
!#/bin/sh
if ($#=1) then
echo "some promt"
else
ls -l /var/www/html | awk -v date=$1 '$x>$date' {system("cp "$NF" /opt/backup")}'
fi
调用的时候
./xxx 需要的时间
ls -l
找到5月15日之后的文件
cp xxx /opt/backup/
就行了
可以用awk来做:
思路是,用shell 读取需要的时间,传递给awk。
大概是这个样子,没环境,可能还需要改下
!#/bin/sh
if ($#=1) then
echo "some promt"
else
ls -l /var/www/html | awk -v date=$1 '$x>$date' {system("cp "$NF" /opt/backup")}'
fi
调用的时候
./xxx 需要的时间
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
具体确定日期我不知道怎么做. 但是如果想要复制修改时间在20天之内的. 应该用如下shell命令.
find /var/www/html -type f -mtime 20 -exec cp {} /opt/backup/ \
find /var/www/html -type f -mtime 20 -exec cp {} /opt/backup/ \
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#!/bin/sh
show_usage() {
echo "Usage: backup.sh src_folder bak_folder bak_date"
echo ""
echo "src_folder - source folder to backup"
echo "bak_folder - backup folder"
echo "bak_date - backup date in YYYYMMDD format"
}
if [ $# -ne 3 ]; then
show_usage
exit 1
fi
src_folder="$1"
bak_folder="$2"
bak_date="$3"
bak_file="$bak_folder/backup.tar" # 这里把备份文件名固定为backup.tar了,你可以根据需要做些修改
if [ -f $bak_file ]; then
rm $bak_file
fi
tmpfile="`mktemp`"
touch -t ${bak_date}0000 $tmpfile
cd $src_folder
find . -name "*.py" -newer $tmpfile -exec tar rvf $bak_file {} \;
rm $tmpfile
echo "backup file: $bak_file"
ls -l $bak_file
备份时运行命令:
backup.sh /var/www/html /opt/backup 20130515
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询