求助shell:linux 如何指定时间点,然后从某文件夹中获取这时间之后生成...
发布网友
发布时间:2022-04-25 03:10
我来回答
共3个回答
热心网友
时间:2023-01-21 22:49
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 需要的时间
热心网友
时间:2023-01-22 00:07
具体确定日期我不知道怎么做. 但是如果想要复制修改时间在20天之内的. 应该用如下shell命令.
find /var/www/html -type f -mtime 20 -exec cp {} /opt/backup/ \
热心网友
时间:2023-01-22 01:42
#!/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