帮我写一个检测特定路径下是否存在sql文件,如果有服务器登陆mysql并自动执行该sql的shell脚本
时间: 2024-03-20 09:45:11 浏览: 63
好的,以下是一个简单的Shell脚本,可以实现您的需求:
```bash
#!/bin/bash
# 定义MySQL连接信息
MYSQL_HOST="localhost"
MYSQL_PORT="3306"
MYSQL_USER="root"
MYSQL_PASSWORD="root"
MYSQL_DB="test"
# 指定要检测的路径
sql_dir="/path/to/sql/dir"
# 遍历指定路径下的所有文件
for filename in "$sql_dir"/*.sql; do
# 如果发现.sql文件,则读取文件内容
if [ -f "$filename" ]; then
sql=$(cat "$filename")
# 连接MySQL,并执行SQL语句
mysql -h "$MYSQL_HOST" -P "$MYSQL_PORT" -u "$MYSQL_USER" -p"$MYSQL_PASSWORD" "$MYSQL_DB" -e "$sql"
if [ $? -eq 0 ]; then
echo "Successfully executed $filename"
else
echo "Error executing $filename"
fi
fi
done
```
您只需要将`MYSQL_HOST`、`MYSQL_PORT`、`MYSQL_USER`、`MYSQL_PASSWORD`和`MYSQL_DB`替换为您的MySQL连接信息,将`sql_dir`指定为您要检测的目录路径即可。脚本会自动遍历该目录下的所有.sql文件,并连接MySQL并执行SQL语句。
请注意,这个脚本可能会执行一些危险的SQL语句,请确保在指定的目录中只有您信任的.sql文件。另外,请确保您已经安装了MySQL客户端。
阅读全文