编写一段shell脚本,实现没10分钟检测一次/home
时间: 2023-05-28 13:04:28 浏览: 88
#!/bin/bash
while true
do
echo "Checking /home at $(date)"
# 在这里添加检测/home的命令
sleep 600 # 暂停10分钟
done
相关问题
在Linux下编写一段shell脚本,实现后台每10分钟检测一次/home下的内容,如果有新文件,调用系统闹钟提醒
#!/bin/bash
# 设置闹钟提醒函数
function alarm {
echo "New files detected in /home!" | wall
# 在这里设置闹钟提醒命令,比如:
# echo "New files detected in /home!" | wall && sleep 10 && beep
}
# 获取当前/home目录下的文件列表
files=$(ls /home)
# 初始化变量,记录上次检测时的文件列表
prev_files=$files
while true; do
# 等待10分钟
sleep 600
# 再次获取当前/home目录下的文件列表
files=$(ls /home)
# 比较上次检测时的文件列表和当前文件列表,如果不同则调用闹钟提醒函数
if [ "$prev_files" != "$files" ]; then
alarm
fi
# 更新上次检测时的文件列表
prev_files=$files
done
# 注意:这段脚本应该在后台运行,可以使用 nohup 命令运行,比如:
# nohup ./check_home.sh &
有一个初始文件,存放在 /home/alan/learn 子目录中,文件名是 demo.c 。你需要批量创建几十个“classmate” 开头后面跟着数字的子目录,并且将 demo.c 文件复制到每个子目录中。请编写一段 shell 脚本,根据命令行中指定的数字自动完成上述工作。 例如,执行脚本命令 ./yourscript.sh 41 就可以创建 classmate1 ∼ classmate41 ,共 41 个子目录,并自动将 demo.c 文件复制到每一个子目录中。
可以使用循环结构和 mkdir 命令创建子目录,使用 cp 命令将 demo.c 文件复制到每个子目录中。具体实现如下:
```bash
#!/bin/bash
# 获取命令行参数,即要创建的子目录数量
n=$1
# 切换到 /home/alan/learn 目录
cd /home/alan/learn
# 循环创建子目录和复制文件
for i in $(seq 1 $n); do
mkdir classmate$i # 创建子目录
cp demo.c classmate$i # 复制文件到子目录
done
echo "Done."
```
将以上代码保存到 yourscript.sh 文件中,然后在命令行中执行以下命令即可:
```bash
./yourscript.sh 41
```
其中,41 可以替换成需要创建的子目录数量。执行完毕后,即可在 /home/alan/learn 目录下看到创建的子目录。
阅读全文