编写一段shell脚本用于在每天指定时间生成yymmdd格式后缀表名的视图,如:attack_traceability_basic_230529,时间可通过外部参数-h指定每天的哪个小时执行
时间: 2024-02-16 11:03:09 浏览: 102
好的,以下是一段shell脚本用于生成具有yymmdd后缀的表名视图:
```sh
#!/bin/bash
# 获取当前日期
DATE=$(date +%y%m%d)
# 获取小时参数
while getopts "h:" opt; do
case $opt in
h)
HOUR=${OPTARG}
;;
\?)
echo "Invalid option: -$OPTARG" >&2
exit 1
;;
:)
echo "Option -$OPTARG requires an argument." >&2
exit 1
;;
esac
done
# 如果没有传入小时参数,则默认为0
if [ -z "${HOUR}" ]; then
HOUR=0
fi
# 生成表名
TABLE_NAME="attack_traceability_basic_${DATE}"
# 生成视图语句
VIEW_SQL="CREATE OR REPLACE VIEW ${TABLE_NAME} AS SELECT * FROM attack_traceability_basic WHERE DATE_FORMAT(create_time, '%y%m%d%H') = '${DATE}${HOUR}';"
# 执行视图语句
mysql -u <user> -p<password> -D <database> -e "${VIEW_SQL}"
```
这段脚本会在每天指定的小时生成一个名为"attack_traceability_basic_yymmdd"的视图,视图内容会选择创建时间为当天指定小时的原始表数据。使用-h参数可以指定小时,如果不传入则默认为0。请注意将<user>,<password>和<database>替换为您的实际数据库连接信息。
阅读全文
相关推荐
















