设计一个shell程序,备份并压缩/web目录的所有内容,存放在/bak目录里,且压缩文件名为“webyyyymmdd.tar.gz”,其中yyyy为年,mm为月,dd为日。
时间: 2023-06-06 19:09:14 浏览: 60
好的,我理解了你的要求。以下是一个示例Shell程序,用于备份并压缩/web目录的所有内容,存放在/bak目录里,且压缩文件名为“webyyyymmdd.tar.gz”。
```bash
#!/bin/bash
# 获取当前时间
BACKUP_TIME="$(date +%Y%m%d)"
# 创建备份目录
mkdir -p /bak
# 备份并压缩/web目录
tar -czvf /bak/web${BACKUP_TIME}.tar.gz /web
echo "备份完成,文件名为:web${BACKUP_TIME}.tar.gz"
```
请将以上代码保存为一个名为`backup.sh`的文件,并保存在/root目录下。然后,在终端中运行以下命令,给`backup.sh`文件赋予执行权限:
```bash
chmod +x /root/backup.sh
```
接下来,你可以创建一个cronjob定期执行`backup.sh`文件,以便自动备份/web目录。将以下行添加到你的crontab中,以每天凌晨1点运行备份脚本:
```bash
0 1 * * * /root/backup.sh
```
这将在每天凌晨1点自动运行备份脚本,并将备份文件存储在/bak目录中的webyyyymmdd.tar.gz文件中。
相关问题
设计一个shell程序,在每月第一天备份并压缩/etc目录的所有内容,存放在/root/bak目录里,且文件名为如下形式yymmdd_etc,yy为年,mm为月,dd为日。Shell程序fileback存放在/usr/bin目录下。
好的,这是一个简单的 shell 脚本,可以实现您的要求。请将以下脚本保存为 fileback 并放在 /usr/bin 目录下,然后给它执行权限。
```bash
#!/bin/bash
# 获取当前日期
now=$(date +"%y%m%d")
# 压缩/etc目录并保存到/root/bak目录下
tar -czf /root/bak/${now}_etc.tar.gz /etc
# 输出备份完成信息
echo "Backup complete: /root/bak/${now}_etc.tar.gz"
```
然后,您可以在每月第一天通过以下方式运行此脚本:
```bash
sudo fileback
```
这将压缩并备份 `/etc` 目录,并将备份文件保存在 `/root/bak` 目录下,文件名格式为 `yymmdd_etc.tar.gz`。
设计一个Shell程序,在/userdata目录下建立20个目录,即user1~user20
好的,这是一个简单的Shell程序,可以在终端中执行,实现在/userdata目录下建立20个目录:
```bash
#!/bin/bash
# 进入userdata目录
cd /userdata
# 创建20个目录
for i in {1..20}
do
mkdir user$i
done
echo "20个目录创建完毕"
```
你可以将以上代码保存到一个名为 `create_directories.sh` 的文件中,并赋予执行权限后在终端中运行即可。