Shell 脚本启动项目

注:如下带有符号‘【】’位置,均为需要替换的路径或者ip端口等信息地址,请做替换。

一、Django + Celery + Redis + Uwsgi Shell脚本启动

1、流程式启动
#!/bin/bash

redis_host="【redis_host】"
redis_port="r【edis_port】"
redis_auth="r【edis_auth】"

django_host="【django_host】"
django_port="d【jango_port】"

# Start
function start()
{
  # start celery workers
  celery multi start w1 -A follow_up_visit --loglevel=INFO -Q queue_task_assignment --logfile=log/celerylog/w1%I.log --pidfile=log/celerylog/w1%I.pid -c 1
  celery multi start w2 -A follow_up_visit --loglevel=INFO -Q task_status_update --logfile=log/celerylog/w2%I.log --pidfile=log/celerylog/w2%I.pid -c 1
  celery multi start w3 -A follow_up_visit --loglevel=INFO -Q task_call --logfile=log/celerylog/w3%I.log --pidfile=log/celerylog/w3%I.pid -c 1
  celery multi start w4 -A follow_up_visit --loglevel=INFO -Q task_timing --logfile=log/celerylog/w4%I.log --pidfile=log/celerylog/w4%I.pid -c 1
  echo "Celery 启动成功"

  # start django project
  #  nohup python manage.py runserver 0.0.0.0:${django_port} > manage.out 2>&1 &
  uwsgi uwsgi.ini
  echo "Django 启动成功"

  curl_result=`curl "http://${django_host}:${django_port}/start_updateStatus/"`
  while [ "${curl_result}x" != "successx" ]
  do
    curl_result=`curl "http://${django_host}:${django_port}/start_updateStatus/"`
    echo "GET request: ${curl_result}"
  done
}

function end()
{
    # close celery
    ps auxww | grep 'celery' | awk '{print $2}' | xargs kill -9
    celery multi stop w1
    celery multi stop w2
    celery multi stop w3
    celery multi stop w4

    # clear redis
    echo  "flushall" | redis-cli -h ${redis_host} -p ${redis_port} -a ${redis_auth}

    # kill django project
  #  ps auxww | grep 'manage.py' | awk '{print $2}' | xargs kill -9

    # kill uwsgi
    uwsgi --stop uwsgi.pid
}



if [ $1 == 'start' ]
then
  start
fi

if [ $1 == 'end' ]
then
  end
fi

if [ $1 == 'restart' ]
then
  end
  start
fi

echo "$1 Success!"

# 记得使用前需要运行 sed -i 's/\r$//' database_backup.sh
# 启动服务 sh startup.sh start
# 停止服务 sh startup.sh end
# 重启服务 sh startup.sh restart

# 启动不成功原因
# 1、curl请求不成功   查看settings.py/BROKER_URL中redis配置
# 2、while [ "${curl_result}x" != "successx" ]死循环,查看urls路径是否打开

二、Mysql 数据库 Shell脚本备份

1、数据库按照日期备份,并根据保留天数删除过期备份文件。
#!/bin/bash
dbpwd="123456"

dbuser="root"

hosts=(【数据库访问ip】 )
port=3306

DATE=`date "+%Y-%m-%d"`

save_sql_file=`date "+%H-%M-%S"`

save_sql_name=$save_sql_file".sql"
 
BACKUP_PATH=/home/db_bachup/

LOG=$BACKUP_PATH/$DATE/$save_sql_file"backup.log"
echo ${LOG}

keep_backup_days=1

# if BACKUP_PATH doesn't exists,mkdir
[ -d $BACKUP_PATH ] || mkdir  -p $BACKUP_PATH/$DATE

if [ !-d$BACKUP_PATH/$DATE ];then

       mkdir -p $BACKUP_PATH/$DATE

fi

for host in ${hosts[*]}
do
        alldb=(`echo show databases|mysql -u$dbuser -p$dbpwd -h$host -P$port --default-character-set=utf8mb4 |grep -v "information_schema\|mysql\|performance_schema\|sys\|Database"`)         
         echo -e "=================== $host $DATE `date +%T` DUMP Begin =============="  >>$LOG
        /usr/local/mysql/bin/mysqldump -u$dbuser -p$dbpwd -h$host -P$port  --default-character-set=utf8mb4  --single-transaction --master-data=2 --triggers --routines --events --complete-insert --set-gtid-purged=OFF --databases ${alldb[*]} >$BACKUP_PATH/$DATE/$save_sql_name 2>>$LOG
        echo -e "=================== $host $DATE `date +%T` DUMP End ================ " >>$LOG
        if [ $? -eq 0 ];then
              echo "$(date +%F%T) $host backup is Success and End" >> success.txt
              find $BACKUP_PATH -mtime +$keep_backup_days -type d -exec rm -rf {} \;
        fi
done


# mysqldump -uroot -p密码 -hIP -P端口 --default-character-set=utf8mb4 --single-transaction --master-data=2 --triggers --routines --events --complete-insert --set-gtid-purged=OFF --databases f数据库名 >> 111.sql

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值