帮我写一个shell脚本 功能是每天定时删除文件生成日期过了当天的shell脚本
时间: 2023-07-04 09:30:51 浏览: 65
好的,以下是一个每天定时删除文件生成日期过了当天的shell脚本示例:
```bash
#!/bin/bash
# 设置要删除的文件路径和文件名前缀
file_path="/path/to/files"
file_prefix="file_"
# 获取当前日期
current_date=$(date +%Y-%m-%d)
# 遍历文件列表,删除生成日期比当前日期早的文件
for file in ${file_path}/${file_prefix}*
do
# 获取文件生成日期
create_date=$(date +%Y-%m-%d -r $file)
# 比较生成日期和当前日期
if [[ $create_date < $current_date ]]; then
# 删除文件
rm -f $file
fi
done
echo "删除过期文件完成!"
```
将该脚本保存为一个文件(如`delete_files.sh`),然后使用`crontab`等工具设置每天定时执行该脚本即可。
注意:在使用该脚本之前,请先测试一下是否可以正确地删除过期文件。另外,修改`file_path`和`file_prefix`变量为您实际的文件路径和文件名前缀。
相关问题
帮我写一个定时任务执行存过和shell脚本任务的shell脚本
可以使用以下的shell脚本来实现定时任务执行存过和shell脚本任务的功能:
```
#!/bin/bash
# 定义存储过程名称
procedure_name="my_procedure"
# 定义存储过程执行语句
procedure_command="CALL my_database.${procedure_name}();"
# 定义shell脚本文件路径
shell_script_path="/home/user/my_script.sh"
# 定义定时任务执行时间
cron_time="*/5 * * * *"
# 将定时任务添加到crontab列表中
echo "${cron_time} ${procedure_command}" | crontab -
# 将shell脚本文件添加可执行权限
chmod +x ${shell_script_path}
# 在shell脚本文件中添加执行存储过程的命令
echo "${procedure_command}" >> ${shell_script_path}
# 将shell脚本文件添加到crontab列表中
echo "${cron_time} ${shell_script_path}" | crontab -
```
这个shell脚本会执行以下操作:
1. 定义存储过程名称和执行语句;
2. 定义shell脚本文件路径;
3. 定义定时任务执行时间;
4. 将定时任务添加到crontab列表中;
5. 将shell脚本文件添加可执行权限;
6. 在shell脚本文件中添加执行存储过程的命令;
7. 将shell脚本文件添加到crontab列表中。
帮我写一个shell脚本,自动连接ftp获取各个日期的数据文件
好的,可以参考以下脚本:
```shell
#!/bin/bash
# FTP服务器信息
HOST="ftp.example.com"
USER="username"
PASSWORD="password"
# 本地数据文件保存路径
LOCAL_DIR="/path/to/local/dir"
# 远程数据文件保存路径
REMOTE_DIR="/path/to/remote/dir"
# 获取当前日期
DATE=$(date +%Y-%m-%d)
# 连接 FTP 并获取数据文件
ftp -n $HOST <<EOF
user $USER $PASSWORD
binary
cd $REMOTE_DIR
lcd $LOCAL_DIR
get data_${DATE}.txt
bye
EOF
```
在脚本中,需要修改以下变量:
- HOST:FTP服务器的主机名或IP地址。
- USER:FTP服务器的用户名。
- PASSWORD:FTP服务器的密码。
- LOCAL_DIR:本地数据文件保存的路径。
- REMOTE_DIR:远程数据文件保存的路径。
脚本中使用了 `date` 命令获取当前日期,并使用 `${DATE}` 变量构造数据文件名,如 `data_2022-01-01.txt`。
可以将脚本保存为文件,如 `get_data.sh`,并使用 `chmod +x get_data.sh` 命令添加执行权限,然后执行 `./get_data.sh` 命令即可连接 FTP 并获取数据文件。