编写一个shell脚本备份系统/etc目录系统是Linux
时间: 2024-01-20 08:02:57 浏览: 88
的核心,系统配置文件一般存储在/etc目录下。备份/etc目录可以方便地恢复系统配置,防止因为配置文件的误操作导致系统崩溃。以下是一个备份/etc目录的shell脚本示例:
```
#!/bin/bash
backup_dir=/var/backup/etc
date_str=$(date +%Y%m%d-%H%M%S)
if [ ! -d $backup_dir ]; then
mkdir -p $backup_dir
fi
tar -czvf $backup_dir/etc-backup-$date_str.tar.gz /etc
```
这个脚本首先定义了备份目录的路径,然后获取当前时间作为文件名的一部分。如果备份目录不存在,则创建它。最后使用tar命令将/etc目录打包成一个压缩文件,并保存到备份目录中。
你可以根据需要调整备份目录的路径和备份文件名的格式。同时,你也可以添加其他功能,比如备份其他重要文件,清理旧的备份文件等。
相关问题
用shell脚本编写一个LInux自动安全基线加固脚本
好的,下面是一个简单的Linux自动安全基线加固脚本,根据需求可以自行修改:
```shell
#!/bin/bash
# 修改密码策略,最小密码长度为8,密码复杂度要求为数字、大小写字母和特殊字符的组合
sed -i 's/PASS_MIN_LEN.*/PASS_MIN_LEN 8/' /etc/login.defs
authconfig --passminlen=8 --passcomplexity=4 --update
# 禁止root以外的用户使用su切换为root用户
echo "auth required pam_wheel.so use_uid" >> /etc/pam.d/su
# 设置密码过期时间为90天
sed -i 's/PASS_MAX_DAYS.*/PASS_MAX_DAYS 90/' /etc/login.defs
sed -i 's/^#\(PASS_WARN_AGE\)/\1/' /etc/login.defs
# 禁止空密码登录
sed -i 's/nullok_secure/nullok/' /etc/pam.d/system-auth
# 禁用不必要的服务
systemctl disable avahi-daemon.service
systemctl disable cups.service
systemctl disable dhcpd.service
systemctl disable slapd.service
systemctl disable nfs.service
systemctl disable rpcbind.service
# 关闭不必要的端口
firewall-cmd --zone=public --remove-port=111/tcp --permanent
firewall-cmd --zone=public --remove-port=2049/tcp --permanent
firewall-cmd --zone=public --remove-port=5353/udp --permanent
firewall-cmd --zone=public --remove-port=631/tcp --permanent
# 安装基础安全工具
yum install -y wget curl net-tools nmap telnet tcpdump iptables
echo "安全加固完成!"
```
这个脚本包含以下安全加固措施:
1. 修改密码策略,最小密码长度为8,密码复杂度要求为数字、大小写字母和特殊字符的组合;
2. 禁止root以外的用户使用su切换为root用户;
3. 设置密码过期时间为90天;
4. 禁止空密码登录;
5. 禁用不必要的服务;
6. 关闭不必要的端口;
7. 安装基础安全工具。
注意:在运行脚本之前,请确保已经备份了系统的重要文件,并且仔细检查脚本中的每一条命令是否适用于当前的环境。
阅读全文