写一个可以按条件删除数据库表数据的shell脚本
时间: 2024-06-04 22:12:16 浏览: 79
#!/bin/bash
# 定义数据库连接参数
HOST="localhost"
PORT="3306"
USER="username"
PASSWORD="password"
DATABASE="database_name"
# 定义删除条件
CONDITION="age > 18"
# 拼接删除SQL语句
SQL="DELETE FROM table_name WHERE $CONDITION;"
# 执行SQL语句
mysql -h $HOST -P $PORT -u $USER -p$PASSWORD $DATABASE -e "$SQL"
# 输出执行结果
echo "删除完成!"
相关问题
创建一个抽取oracle数据库表数据到mysql表的shell脚本
好的,下面是一个抽取Oracle数据库表数据到MySQL表的shell脚本,你可以参考一下:
```bash
#!/bin/bash
# 设置Oracle数据库连接信息
ORACLE_USERNAME="用户名"
ORACLE_PASSWORD="密码"
ORACLE_HOST="数据库地址"
ORACLE_PORT="数据库端口"
ORACLE_SID="数据库SID"
ORACLE_TABLE="Oracle表名"
# 设置MySQL数据库连接信息
MYSQL_USERNAME="用户名"
MYSQL_PASSWORD="密码"
MYSQL_HOST="数据库地址"
MYSQL_PORT="数据库端口"
MYSQL_DATABASE="MySQL数据库名"
MYSQL_TABLE="MySQL表名"
# 导出Oracle表数据到CSV文件
sqlplus -S "${ORACLE_USERNAME}/${ORACLE_PASSWORD}@${ORACLE_HOST}:${ORACLE_PORT}/${ORACLE_SID}" <<EOF
set feedback off
set heading off
set echo off
set pagesize 0
set linesize 10000
set trimspool on
set colsep ','
spool /tmp/oracle_data.csv
select * from ${ORACLE_TABLE};
spool off
exit;
EOF
# 导入CSV文件到MySQL表中
mysql -u "${MYSQL_USERNAME}" -p"${MYSQL_PASSWORD}" -h "${MYSQL_HOST}" -P "${MYSQL_PORT}" "${MYSQL_DATABASE}" <<EOF
LOAD DATA LOCAL INFILE '/tmp/oracle_data.csv'
INTO TABLE ${MYSQL_TABLE}
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;
EOF
# 删除临时文件
rm /tmp/oracle_data.csv
```
请注意,这个脚本仅供参考,具体需要根据你的实际情况进行修改。
写一个mongodb数据库增量备份的shell脚本
下面是一个基于 MongoDB 增量备份的 shell 脚本的示例:
```
#!/bin/bash
# 设置变量
BACKUP_DIR=<your_backup_directory>
DATE=$(date +%Y%m%d)
# 连接 MongoDB 并创建备份
mongodump --out $BACKUP_DIR/$DATE --incremental
# 压缩备份文件
tar -zcvf $BACKUP_DIR/$DATE.tar.gz $BACKUP_DIR/$DATE
# 删除备份目录(仅保留压缩文件)
rm -rf $BACKUP_DIR/$DATE
```
在上面的脚本中,首先使用 `mongodump` 命令创建了一个增量备份,然后使用 `tar` 命令将备份文件压缩,最后删除备份目录。您可以使用 `cron` 或类似的工具来定期运行此脚本,以确保数据库数据得到定期备份。
注意:请确保您替换 `<your_backup_directory>` 为您希望存储备份的目录的正确路径。
阅读全文