写一个部署在linux服务器上的shell脚本,要求能够通过命令行调起 入参有两个:一个yyyymmdd格式的日期,命名为$reportDate,一个文件名reportName,命名为$reportName 用/remote_dir/salesreport_weixin/ 和 $reportDate进行拼接,形成文件路径 命名为$filePath 用$reportName + $reportDate + .png后缀 构成文件名,命名为$fileName 再将$filePath 和 $fileName 拼接形成完整的文件路径 $completePath 再调用名为SendWeChatFileByPath的websrvice, post三个参数,分别为 "ACRM", "营销数据微信推送测试群", $completePath
时间: 2023-07-14 21:12:45 浏览: 38
以下是一个可能的实现,假设SendWeChatFileByPath的websrvice已经存在并且可以通过curl命令调用。
```bash
#!/bin/bash
# 获取命令行参数
reportDate=$1
reportName=$2
# 拼接文件路径和文件名
filePath="/remote_dir/salesreport_weixin/${reportDate}"
fileName="${reportName}${reportDate}.png"
completePath="${filePath}/${fileName}"
# 调用websrvice
curl -X POST -F "arg1=ACRM" -F "arg2=营销数据微信推送测试群" -F "arg3=@${completePath}" http://example.com/SendWeChatFileByPath
```
使用方法:在linux服务器上创建一个名为`send_report.sh`的文件,将上述代码拷贝进去,然后给它赋予执行权限。以后就可以使用命令行调用它,例如:
```bash
./send_report.sh 20220101 sales_report
```
这样就会发送文件`/remote_dir/salesreport_weixin/20220101/sales_report20220101.png`到指定的微信群。
相关问题
写一个能验证yyyymmdd格式日期的正则
可以使用如下的正则表达式来验证yyyymmdd格式的日期:
```
^\d{4}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])$
```
其中,`\d{4}` 用来匹配年份,`(0[1-9]|1[0-2])` 用来匹配月份,`(0[1-9]|[12]\d|3[01])` 用来匹配日。这个正则表达式会匹配如下格式的日期:20220101、20221231 等。
帮我用python和shell写一个每天零点自动备份数据库的脚本,数据库名称:more_is_different
当然可以!以下是一个使用Python和Shell结合的脚本,可以每天零点自动备份数据库(假设你使用的是MySQL数据库):
Python脚本(backup.py):
```python
import os
import datetime
# 获取当前日期时间
current_datetime = datetime.datetime.now()
# 创建备份文件名
backup_file_name = f"more_is_different_{current_datetime.strftime('%Y%m%d')}.sql"
# 执行备份命令
command = f"mysqldump -u your_username -p your_password more_is_different > {backup_file_name}"
os.system(command)
```
Shell脚本(backup.sh):
```shell
#!/bin/bash
# 设置计划任务,每天零点执行备份脚本
(crontab -l ; echo "0 0 * * * python /path/to/backup.py") | crontab -
```
请将以上代码保存为两个文件:`backup.py` 和 `backup.sh`。
确保替换以下内容:
- `your_username`:你的MySQL用户名
- `your_password`:你的MySQL密码
- `/path/to/backup.py`:`backup.py`脚本的实际路径
然后,在终端中运行以下命令,给予脚本执行权限:
```shell
chmod +x backup.sh
```
最后,运行`backup.sh`脚本,它会将备份命令添加到计划任务中,以便每天零点自动执行数据库备份。备份文件将以`more_is_different_YYYYMMDD.sql`的格式保存在当前目录中,其中YYYYMMDD是备份的日期。