编写脚本backup.sh,可实现每周将/etc/目录备份到/backup/etcYYYY-mm-dd中 功能包括:1、创建/backup/etcYYYY-mm-dd文件夹 2、压缩备份/etc/*的内容 3、每周日上午2:15执行备份任务
时间: 2023-09-06 22:13:08 浏览: 50
好的,以下是 backup.sh 的脚本代码:
```
#!/bin/bash
# 获取当前日期
DATE=$(date +%Y-%m-%d)
# 判断是否为周日
if [ $(date +%u) -eq 7 ]; then
# 创建备份文件夹
mkdir -p /backup/etc$DATE
# 备份/etc目录
tar -czvf /backup/etc$DATE/etc.tar.gz /etc/*
echo "备份已完成"
else
echo "今天不是周日,无需备份"
fi
```
注意,这个脚本只能在 Linux 系统上运行,需要使用 root 权限运行。如果你需要每周日上午 2:15 执行备份任务,可以将以下内容添加到 crontab 中:
```
15 2 * * 7 /bin/bash /path/to/backup.sh
```
其中,`/path/to/backup.sh` 需要替换为实际的备份脚本路径。
相关问题
1. 编写脚本 backup.sh,可实现每日将 /etc/ 目录备份到 /backup/etc-YYYY-mm-dd文件中。
可以使用以下脚本实现备份:
```
#!/bin/bash
# 获取当前日期
DATE=`date +%Y-%m-%d`
# 备份目录
BACKUP_DIR="/backup"
# 目录备份文件名
BACKUP_FILE="$BACKUP_DIR/etc-$DATE"
# 备份命令
tar -czvf $BACKUP_FILE.tar.gz /etc/
```
该脚本使用 `date` 命令获取当前日期,然后将 `/etc/` 目录压缩到 `/backup/etc-YYYY-mm-dd.tar.gz` 文件中。可以将该脚本添加到 crontab 中,每天自动执行备份任务。
编写脚本sumfile.sh,统计/etc,/var,/usr目录中共有多少个一级子目录和文件
好的,这是一个可以完成您要求的脚本sumfile.sh:
```bash
#!/bin/bash
# 需要统计的目录列表
directories=( "/etc" "/var" "/usr" )
# 统计目录中的文件和子目录个数
total_files=0
total_dirs=0
# 遍历每个目录并累加文件和子目录个数
for dir in "${directories[@]}"
do
# 统计子目录个数(不包括嵌套子目录)
dirs=$(find "$dir" -maxdepth 1 -type d | wc -l)
# 统计文件个数(不包括子目录)
files=$(find "$dir" -maxdepth 1 -type f | wc -l)
# 统计总的子目录和文件个数
((total_dirs+=dirs))
((total_files+=files))
done
# 打印总的子目录和文件个数
echo "一级子目录和文件总数: $((total_dirs+total_files))"
```
使用方法:
1. 把脚本复制到您的Linux服务器上,并保存为sumfile.sh文件。
2. 执行以下命令,为脚本添加执行权限:
```
chmod +x sumfile.sh
```
3. 执行以下命令,运行脚本并查看输出结果:
```
./sumfile.sh
```
脚本会输出/etc, /var和/usr目录中的一级子目录和文件总数。如果您想修改需要统计的目录列表,只需在脚本中修改directories变量即可。