突发奇想,简单几行,写了个shell脚本式的。
将服务器 ip 、端口 、用户名 、密码设置好,然后使用 login_mongo 传入 对mongo的 库、表操作
#!/bin/bash
cd `dirname $0`
path=`pwd`
logfile="$path/remove.log"
#################################### 登录数据库模块 #######################################
login_mongo(){
dbname="$1"
tablename="$2"
act="$3"
syntax="$4"
echo -e "执行语句: \n use $dbname; \n db.${tablename}.${act}(${syntax}) \n ---" >> $logfile
echo "
use $dbname;
db.${tablename}.${act}(${syntax})
" \
| /usr/local/mongodb/bin/mongo -u$mongouser -p$mongopass ${mongohost}:${mongoport}/admin
}
###########################################################################################
mongohost="192.168.50.223"
mongoport="27017"
mongouser="root"
mongopass="a123jksh@aEddsf"
#删除55天前数据
dates=`date -d "55 day ago" +%Y-%m-%d `
echo -e "*****>>> \n[ `date +"%Y-%m-%d %H:%M:%S"` ] 删除开始时间 <<<*****" | tee -a $logfile
login_mongo gag_report billInfo count '{"saleTime":{$lt:ISODate("'$dates'T00:00:00.000Z")}}' | tee -a $logfile
echo "---- 删除以上查询的数据 ----" | tee -a $logfile
login_mongo gag_report billInfo remove '{"saleTime":{$lt:ISODate("'$dates'T00:00:00.000Z")}}' | tee -a $logfile
echo -e "*****>>> [ `date +"%Y-%m-%d %H:%M:%S"` ] 删除结束时间 <<<*****" | tee -a $logfile