MST
星途 面试题库

面试题:Bash脚本中如何实现文件备份并记录日志

编写一个Bash脚本,要求能够将指定目录下的所有文件备份到另一个目录,并在备份过程中记录详细的日志,包括备份的文件名、时间等信息。
10.4万 热度难度
编程语言Bash

知识考点

AI 面试

面试题答案

一键面试
#!/bin/bash

# 源目录
source_dir=$1
# 目标目录
target_dir=$2
# 日志文件
log_file="backup_log_$(date +%Y%m%d%H%M%S).log"

# 检查源目录是否存在
if [ ! -d "$source_dir" ]; then
    echo "源目录 $source_dir 不存在" >> $log_file
    exit 1
fi

# 检查目标目录是否存在,不存在则创建
if [ ! -d "$target_dir" ]; then
    mkdir -p $target_dir
fi

# 备份文件并记录日志
for file in $source_dir/*; do
    if [ -f "$file" ]; then
        file_name=$(basename "$file")
        backup_time=$(date +"%Y-%m-%d %H:%M:%S")
        cp "$file" $target_dir
        echo "备份文件: $file_name, 时间: $backup_time" >> $log_file
    fi
done

echo "备份完成,日志记录在 $log_file"

使用方法:在终端中运行 bash 脚本名.sh 源目录路径 目标目录路径。例如:bash backup.sh /home/user/source /home/user/target