使用linux下的shell编程,创建 /home/my.sh 文件,实现以下功能: 在 /home 目录下创建班级名称目录,名称为:21大数据B班 创建用户账号(账号名为学生的姓名拼音全拼,如张三的拼音全拼为 zhangsan),默认密码为 123456,用户主目录为 /home/21大数据B班/张三,全名为张三 通过输入参数形式实现,如 sh my.sh 21大数据B班 张三 zhangsan 10001 将1、2二步使用函数方式进行封装,函数名分别为 func_createFolder、func_createUser
时间: 2024-02-18 19:04:30 浏览: 26
好的,我明白了,以下是实现的代码:
```bash
#!/bin/bash
# 创建班级目录函数
function func_createFolder() {
cd /home/
mkdir $1
}
# 创建用户函数
function func_createUser() {
user=$3
password="123456"
uid=$4
cd /home/$1/
mkdir $2
useradd -m -d /home/$1/$2 -s /bin/bash -p $(echo $password | openssl passwd -1 -stdin) -u $uid $user
echo "$user:$password" | chpasswd
chown -R $user:$user /home/$1/$2
}
# 判断参数个数是否正确
if [ $# -ne 4 ]; then
echo "参数个数不正确,正确格式为:sh my.sh 【班级名】 【学生姓名】 【学生拼音全拼】 【学生uid】"
exit 1
fi
# 调用函数创建班级目录和用户
func_createFolder $1
func_createUser $1 $2 $3 $4
echo "创建成功!"
```
可以通过以下命令来运行脚本:
```bash
sh my.sh 21大数据B班 张三 zhangsan 10001
```
其中,第一个参数为班级名,第二个参数为学生姓名,第三个参数为学生拼音全拼,第四个参数为学生uid。
相关问题
使用linux下的shell编程,创建 /home/backup.sh 文件,实现以下功能: 1、判断 /home/backup 目录是否存在,不存在则创建 2、每天0:00自动备份 /var/log/Xorg.0.log 文件到 /home/backup/ 目录下,并将文件重命名,格式为 Xorg_年月日.log(如 Xorg_20230524.log),将此文件的权限设置为644(此配置内容写在 backup.sh 文件的第二行,并注释) 3、删除 /var/log/Xorg.0.log 文件,并创建 /var/log/Xorg.0.log 空文件
以下是 backup.sh 文件的代码实现:
```bash
#!/bin/bash
# 每天0:00自动备份 /var/log/Xorg.0.log 文件到 /home/backup/ 目录下,并将文件重命名,格式为 Xorg_年月日.log
# 将此文件的权限设置为644
# 判断 /home/backup 目录是否存在,不存在则创建
if [ ! -d "/home/backup" ]; then
mkdir /home/backup
fi
# 备份文件
cp /var/log/Xorg.0.log /home/backup/Xorg_$(date +%Y%m%d).log
chmod 644 /home/backup/Xorg_$(date +%Y%m%d).log
# 删除 /var/log/Xorg.0.log 文件,并创建 /var/log/Xorg.0.log 空文件
rm /var/log/Xorg.0.log
touch /var/log/Xorg.0.log
```
可以使用 crontab 工具将 backup.sh 文件设置为每天 0:00 自动执行备份操作。在终端中输入 `crontab -e` 命令,打开 crontab 编辑器,添加以下内容:
```
0 0 * * * /bin/bash /home/backup.sh
```
保存并退出编辑器,这样就可以实现每天 0:00 自动备份 /var/log/Xorg.0.log 文件到 /home/backup/ 目录下,并将文件重命名,格式为 Xorg_年月日.log,同时删除 /var/log/Xorg.0.log 文件,并创建 /var/log/Xorg.0.log 空文件的功能。
三、使用linux下的shell编程,创建 /home/backup.sh 文件,实现以下功能: 1、 判断 /home/backup 目录是否存在,不存在则创建 2、 每天0:00自动备份 /var/log/Xorg.0.log 文件到 /home/backup/ 目录下,并将文件重命名,格式为 Xorg_年月日.log(如 Xorg_20230524.log),将此文件的权限设置为644(此配置内容写在 backup.sh 文件的第二行,并注释) 3、 删除 /var/log/Xorg.0.log 文件,并创建 /var/log/Xorg.0.log 空文件
以下是备份脚本 /home/backup.sh 的代码实现:
```bash
#!/bin/bash
# 检查 /home/backup 目录是否存在,不存在则创建
if [ ! -d "/home/backup" ]; then
mkdir /home/backup
fi
# 备份 /var/log/Xorg.0.log 文件到 /home/backup/ 目录下,并将文件重命名
cp /var/log/Xorg.0.log /home/backup/Xorg_$(date +%Y%m%d).log
chmod 644 /home/backup/Xorg_$(date +%Y%m%d).log
# 删除 /var/log/Xorg.0.log 文件,并创建空文件
rm /var/log/Xorg.0.log
touch /var/log/Xorg.0.log
```
上面的脚本实现了以下功能:
1. 检查 /home/backup 目录是否存在,不存在则创建。
2. 每天0:00自动备份 /var/log/Xorg.0.log 文件到 /home/backup/ 目录下,并将文件重命名为 Xorg_年月日.log,设置权限为644。
3. 删除 /var/log/Xorg.0.log 文件,并创建空文件。
将上面的代码保存为 /home/backup.sh 文件,然后使用以下命令添加执行权限:
```
chmod +x /home/backup.sh
```
接着,可以使用以下命令将脚本添加到 crontab 中,实现每天自动执行备份:
```
crontab -e
```
在打开的 crontab 编辑器中,添加以下内容:
```
0 0 * * * /home/backup.sh
```
上面的内容表示在每天的0点0分执行 /home/backup.sh 脚本,保存并关闭编辑器即可。