지정 한 파일 목록 의 파일 을 지정 한 폴 더 로 자동 으로 백업 합 니 다.
#!/bin/bash
#读取指定文件中文件列表,文件列表中每行一个
#脚本自动读取每行数据,判断文件是否存在,如果存在,则复制到按照时间命名的备份文件中。如果否则记录路径名称
FILE_LISTS=list.txt #定义列表文件名称,脚本必须和文件列表文件在同一目录下
CUR_PATH=`pwd` #定义当前路径,执行脚本必须到脚本目录,如果要通过计划任务执行,则需要进行一定修改,将此路径修改为指定路径
CUR_TIME=`date +%Y%m%d_%H_%m` #去当前系统时间为备份文件名称
BAK_DIRNAME=bak_"$CUR_TIME" #备份文件夹名称
TAR_PATH="$CUR_PATH/""$BAK_DIRNAME"
LOG_NAME="$TAR_PATH"/log.txt
if [ -d $TAR_PATH ] #判断文件是否存在,很少会出现在1分钟内执行两次的情况
then
echo "文件夹存在"
else
mkdir -p "$TAR_PATH" #级联创建相关路径
fi
cd "$TAR_PATH"
if [ `pwd` != "$TAR_PATH" ]
then
echo "路径进入失败"
exit 99
else
#rm -fr * #删除操作需要慎重使用,此脚本在一般情况下不会出现一分钟备份两次的情况,如果有这种特殊情况,可以手动清除
echo "ok"
fi
COUNT_TOTAL=0
COUNT_BAKSUCESS=0
COUNT_NOTEXSIT=0
#准备工作完成,开始执行备份文件
cd "$CUR_PATH"
echo "$CUR_TIME">"$LOG_NAME"
for line in `cat $FILE_LISTS`
do
#判断路径中的文件是否存在
if [ -e "$line" ]
then
cp "$line" "$TAR_PATH"&&echo "$line ok">>"$LOG_NAME"&&let "COUNT_BAKSUCESS+=1"
else
echo "$line not exit">>"$LOG_NAME"&&let "COUNT_NOTEXSIT+=1"
fi
let "COUNT_TOTAL+=1"
done
echo "total is :$COUNT_TOTAL">>"$LOG_NAME"
echo "sucess is :$COUNT_BAKSUCESS">>"$LOG_NAME"
echo "not exist is :$COUNT_NOTEXSIT">>"$LOG_NAME"
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ZSH에서 물고기까지ZSH는 수년 동안 내 기본 셸이었습니다. 이제 몇 달 동안 사용하면서 ZSH 구성에 대해 몇 가지 사항을 발견했습니다. 우리는 을 제공하는 시스템과 더 빨리 상호 작용하는 경향이 있습니다. 내.zshrc 구성에는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.