手撕包菜 mysql_手撕包菜搭建

01f3c2abdaad932df00bf5feb9bc5a69.png

概述

最近做了两件事,一件事就是买了块1t硬盘,第二件事就是买了个百度云会员,无奈找不到资源下载,那就没办法了,搭建一个磁力链接搜索引擎来爬去链接,然后去找资源。

说道磁力链接搜索引擎,最好的当然是手撕包菜了。

搭建

直接使用脚本搭建安装,记住服务器内存最好1g以上的

wget --no-check-certificate https://raw.githubusercontent.com/banwagong-news/scripts/master/ssbc-setup.sh && bash ssbc-setup.sh

之后会让你输入下面的信息

请输入网站域名,多个域名用空格隔开:192.168.1.149

确定浏览器能访问网站 http://192.168.1.149 吗?[y/n]y

Username (leave blank to use 'root'): root

Email address: bboysoulcn@gmail.com

Password:

Password (again):

Superuser created successfully.

等待一段时间就会有数据了,但是注意服务器一定要是国外的服务器,为什么要使用国外的服务器呢大家应该都懂的。

数据库相关

脚本安装的mariadb默认是不允许其他机器登录的,所以如果你要使用本地的数据库连接工具连接这个mariadb的话就要开启mariadb的root远程连接了,还有就是默认是没有密码的,所以最好你设置一个root密码,首先设置root密码,输入

mysql_secure_installation

之后按照提示操作就好

[root@bboysoul-centos ssbc]# mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB

SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current

password for the root user. If you've just installed MariaDB, and

you haven't set the root password yet, the password will be blank,

so you should just press enter here.

Enter current password for root (enter for none):

OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB

root user without the proper authorisation.

Set root password? [Y/n] y

New password:

Re-enter new password:

Password updated successfully!

Reloading privilege tables..

... Success!

By default, a MariaDB installation has an anonymous user, allowing anyone

to log into MariaDB without having to have a user account created for

them. This is intended only for testing, and to make the installation

go a bit smoother. You should remove them before moving into a

production environment.

Remove anonymous users? [Y/n] y

... Success!

Normally, root should only be allowed to connect from 'localhost'. This

ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] n

... skipping.

By default, MariaDB comes with a database named 'test' that anyone can

access. This is also intended only for testing, and should be removed

before moving into a production environment.

Remove test database and access to it? [Y/n] y

- Dropping test database...

... Success!

- Removing privileges on test database...

... Success!

Reloading the privilege tables will ensure that all changes made so far

will take effect immediately.

Reload privilege tables now? [Y/n] y

... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB

installation should now be secure.

Thanks for using MariaDB!

之后就是开启mariadb的远程访问

首先登陆mariadb

mysql -u root -p

之后输入下面命令

MariaDB [mysql]> use mysql

Database changed

MariaDB [mysql]> update user set Host='%' where Host='localhost';

Query OK, 1 row affected (0.00 sec)

Rows matched: 1 Changed: 1 Warnings: 0

MariaDB [mysql]> flush privileges;

Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]>

接着就可以远程登陆数据库了

之后要修改手撕包菜程序里面的连接密码

首先关闭相关的进程

ps -ef |grep python

一般就是下面几个进程

root 958 1 0 20:51 ? 00:00:00 /usr/bin/python -Es /usr/sbin/tuned -l -P

root 3604 1 0 21:13 pts/0 00:00:00 /usr/bin/python2 /usr/bin/gunicorn ssbc.wsgi:application -b 127.0.0.1:8000 --reload

root 3616 3604 1 21:13 pts/0 00:00:09 /usr/bin/python2 /usr/bin/gunicorn ssbc.wsgi:application -b 127.0.0.1:8000 --reload

root 3693 1 12 21:15 ? 00:01:30 python simdht_worker.py

root 3694 1 0 21:15 ? 00:00:00 python index_worker.py

kill之后再kill下面几个进程

ps -ef |grep search

root 3467 1 0 21:03 ? 00:00:00 searchd --config ./sphinx.conf

root 3468 3467 0 21:03 ? 00:00:02 searchd --config ./sphinx.conf

接着修改配置文件

vim /root/ssbc/sphinx.conf

增加数据库的密码

sql_host = 127.0.0.1

sql_user = root

sql_pass =

sql_db = ssbc

sql_port = 3306 # optional, default is 3306

vi /root/ssbc/workers/index_worker.py

SRC_HOST = '127.0.0.1'

SRC_USER = 'root'

SRC_PASS = ''

DST_HOST = '127.0.0.1'

DST_USER = 'root'

DST_PASS = ''

上面两个密码都要修改

vi /root/ssbc/workers/simdht_worker.py

DB_HOST = '127.0.0.1'

DB_USER = 'root'

DB_PORT = 3306

DB_PASS = ''

DB_NAME = 'ssbc'

BLACK_FILE = 'black_list.txt'

vim /root/ssbc/ssbc/settings.py

修改下面,root后面加上数据库密码

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'NAME': 'ssbc',

'HOST': '127.0.0.1',

'PORT': 3306,

'USER': 'root',

'PASSWORD': 'woyaoxuehuilinux',

'OPTIONS': {

"init_command": "SET storage_engine=MYISAM",

}

}

}

关于数据迁移

这个其实好办先在新的机器上执行脚本,执行完成之后删除数据库建立新的ssbc数据库记住编码要utf-8的,之后把老的数据库导入新的就可以了

其他的使用技巧

我就直接复制粘贴了

1.必须centos7吗?

非常建议使用centos7,centos6可能会有意想不到的错误

2.如何设置首页关键字?

登录管理员后台,点击Rec keywordss,右上角新增

3.怎么查看入库的文件?

登录管理员后台,点击 Hashs

4.怎么查看每天入库了多少文件,以便清楚入库效率?

登录管理员后台,点击 Status reports

5.如何确认web服务器、采集、入库正在运行?

运行 ps -ef|grep python|grep -v grep

结果里面有

gunicorn ssbc.wsgi:application -b 127.0.0.1:8000 --reload

python simdht_worker.py

python index_worker.py

即表示正在运行。

——————————————————————————————————————

去除搜索页 右下角广告

[root@localhost ssbc-master]# cd web/static/js

[root@localhost js]# vi ssbc.js 找到如下3行,在前面添加//进行注释,保存

// document.write('

// document.writeln("");

// document.writeln("");

——————————————————————————————————————

如何修改扩展名归类?

workers/metautils.py文件中有如下代码:

def get_category(ext):

ext = ext + '.'

cats = {

u'video': '.avi.mp4.rmvb.m2ts.wmv.mkv.flv.qmv.rm.mov.vob.asf.3gp.mpg.mpeg.m4v.f4v.',

u'image': '.jpg.bmp.jpeg.png.gif.tiff.',

u'document': '.pdf.isz.chm.txt.epub.bc!.doc.ppt.',

u'music': '.mp3.ape.wav.dts.mdf.flac.',

u'package': '.zip.rar.7z.tar.gz.iso.dmg.pkg.',

u'software': '.exe.app.msi.apk.'

}

意思是:扩展名为.exe、.app、.msi、,.apk的文件都属于software类型。

如果你把u'software': '.exe.app.msi.apk.' 改为 u'software': 'app.msi.apk.',那么exe将会被归为other类型。

所以在这里修改归类设置。

——————————————————————————————————————

如何禁止某些格式/分类的文件入库?

workers/metadata.py文件中有如下代码:

info['extension'] = metautils.get_extension(bigfname).lower()

info['category'] = metautils.get_category(info['extension'])

所以如果你要排除扩展名为.exe的文件,或者类型为software,可以在上面代码后面加上

##########这是增加的过滤-开始############

#按扩张名过滤,禁止扩展名为.exe的入库

if info['extension'] == 'exe':

return # 直接返回,跳过下面的入库

#按文件类型过滤,禁止类型为software的入库

if info['category'] == 'software':

return

#禁止类型为other的入库

if info['category'] == 'other':

return

##########这是增加的过滤-结束############

——————————————————————————————————————

如何重建索引?

第一步:

删除/data目录

第二步:

进入数据库,把search_hash表中所有记录的tagged字段置为0。

UPDATE search_hash SET tagged=0

然后启动sphinx、index_worker.py。

——————————————————————————————————————

MySQL server has gone away提示怎么办?

ssbc 运行一段时间后,大概半个小时,就莫名奇妙停止不爬了。 错误提示如下:

MySQL server has gone away

通过错误提示可以看出,其实是ssbc与mysql(maridb)断开连接了,导致程序异常,当然就插入不了数据了。

有3种解决办法:

方法1是写个脚本,定时重启爬虫。

方法2是修改下代码,当mysql断开连接时,再次重连mysql就可以拉。

方法3是修改Mysql配置,将闲置时间wait_timeout设置长一点。

——————————————————————————————————————

哪里设置爬虫线程?让爬虫爬快/慢点?

在workers/simdht_worker.py里面把MAX_QUEUE_LT、MAX_QUEUE_PT、max_node_qsize设大/小一点。

如何关闭调试模式?设置404页面?

请参考 http://www.githubs.cn/post/19

——————————————————————————————————————

如何在搜索结果页面添加迅雷链接?

在web/views.py文件加入以下代码生成迅雷链接:

import base64

xunleiurl = 'AAmagnet:?xt=urn:btih:' + d['info']['info_hash'] + 'ZZ'

d['xunlei_url'] = 'thunder://' + base64.b64encode(xunleiurl)

可以在模板中用“ {{xunlei_url}} ”调用。位置要放在return render(request, 'info.html', d)的前面。

——————————————————————————————————————

SSBC如何搬家?

数据库用mysqldump导出sql,在新服务器上运行一键包,再导入刚才的sql。

——————————————————————————————————————

提示duplicate id 'xxxx'解决办法

进入数据库,执行语句

update search_hash set tagged=True where id=xxxx;

欢迎关注Bboysoul的博客www.bboysoul.com

Have Fun

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/563060.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

word流程图怎么使箭头对齐_word 流程图 怎么把箭头对整齐啊?

word里画流程图把箭bai头画直du,可通过shift键实现画出zhi垂直或水平的直箭头。方法步dao骤如下:回1、打开需要答操作的WORD文档,选中需要画出箭头的流程图框图,点解绘图工具中的“排列对齐”,然后选中“左右居中”对齐。2、在插入形状中找到并点击箭头,使用箭头形状工具…

java 多线程同步_详解Java多线程编程中的线程同步方法

1、多线程的同步:1.1、同步机制:在多线程中,可能有多个线程试图访问一个有限的资源,必须预防这种情况的发生。所以引入了同步机制:在线程使用一个资源时为其加锁,这样其他的线程便不能访问那个资源了&#…

java商品管理系统_【Java Web】简易商品信息管理系统——首个Web项目

正文之前在学习了一段时间的Java Web的内容之后,当然需要有个项目来练练手,我相信大多数人的首选项目都是信息管理系统吧,所以我选择了商品信息管理系统目前项目源码已全部上传至GitHub,欢迎大家来fork —— 商品信息管理系统正文…

java 向上舍入_介绍Java的大数类(BigDecimal)和八种舍入模式

1.BigDecimal简介BigDecimal 由任意精度的整数非标度值 和32 位的整数标度 (scale) 组成。如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值乘以 10 的负scale 次幂。因此,BigDecimal表示的数值是(unscaledValue 10-s…

java循环的内部改变循环变量的值_java在for循环中怎样修改参数值?

// 待认证QueryFilter queryFilter0 new QueryFilter();queryFilter0.addCommand(new Command("busStatus", Op.EQ, "0"));int taxStatus0 taxInfoDao.getCount(queryFilter0);int businessStatus0 businessInfoDao.getCount(queryFilter0);int socialS…

java redis rpush_Redis Rpush 命令

Redis Rpush 命令Redis Rpush 命令用于将一个或多个值插入到列表的尾部(最右边)。如果列表不存在,一个空列表会被创建并执行 RPUSH 操作。当列表存在但不是列表类型时,返回一个错误。注意:在 Redis 2.4 版本以前的 RPUSH 命令,都只…

java jstat 命令_java高分局之jstat命令使用(转)

转自:http://blog.csdn.net/h_025/article/details/52813817java高分局之jstat命令使用jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。命令的格式如下:jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]注意:使用的jdk版本是…

java判_java中判空

一、概述java中判等似乎很简单,用来判断对象引用(内存地址)是否相同,equals用来判断值是否相同。你可以试用String对象轻松区分这一点。那么在null判等(也就是判空操作)时呢?可以通过如下代码明白两个判等的比较:String name nul…

java启动应用_java 学习:在java中启动其他应用,由jenkins想到的

在jenkins的实践中遇到了一个问题:我的项目依赖其他第三方应用的地方比较多,而且会占用多个端口,如何处理端口和启动/关闭第三方应用成了难题。初级解决方案:在服务端上面写一堆bat文件,,,&…

java逻辑编程题_用Java编程解决一道逻辑推理题

package mytest;import java.util.Scanner;public class Test14 {/*** 竞赛结果表明,他们都说对了一半,说错了一半,并且无并列名次,试编程输出a,b,c,d的各个名次。* 分析:* 我们将老师的预测列成二维数组形式。行数是老…

python3线程池爬虫_python3爬虫中多线程的优势总结

有些小伙伴跟小编讨论了python中使用多线程原理的问题,就聊到了关于python多线程的弊端问题,这点可能在使用的过程中大家会能感觉到。而且之前讲过的GIL也是对python多线程的一种限制。那么,我们为什么还要用多线程呢?当然是多线程…

java表格的创建_Java创建表格实例详解 原创

表格是最常用的数据统计形式之一,在 swing 中 由 JTable 类实现表格。接下来,我们看看怎么利用 JTable 创建表格。在 JTable 类中除了默认的构造方法外,还提供了利用指定表格列名数组和表格数据数组创建表格的构造方法,代码如下&a…

java insert方法_【Oracle/Java】以Insert ALL方式向表中插入百万条记录,耗时9分17秒...

packagecom.hy;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.text.MessageFormat;/*** 百万数据插入Oracle表中*authorhorn1**/public classMillionInserter {//连接到…

nodejs mac java home_Mac上搭建nodejs开发环境

###Mac上搭建nodejs开发环境####安装homebrew123ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"brew updatebrew doctor####安装nodejs通过brew安装nodejs和grunt12brew install nodenpm install -g grunt-cli安装成功…

java spring mvc_java spring mvc 全注解

本人苦逼学生一枚,马上就要毕业,面临找工作,实在是不想离开学校.在老师的教导下学习了spring mvc ,配置文件实在繁琐,因此网上百度学习了spring mvc 全注解方式完成spring的装配工作;废话不多说了上干货,其实我也没怎么理解不过简单的运行了一个spring mvc 全注解项目,也不能说…

java note项目_Java Request.setNote方法代码示例

import org.apache.catalina.connector.Request; //导入方法依赖的package包/类/*** Perform single-sign-on support processing for this request.** param request The servlet request we are processing* param response The servlet response we are creating** exceptio…

java 检索编号输出信息_java,_java 如何解析txt文档,输入检索信息,然后输出,java - phpStudy...

java 如何解析txt文档,输入检索信息,然后输出请输入代码需求:请解析config.txt,文件格式包括段落名称、字段名称和字段值。段落名称的值为:"segment:"右边的字符串,在一个文件中不会有重复的段落…

java语言有没有平台无关性_Java语言具有良好的安全性和可移植性及平台无关性。...

【判断题】在类的定义中如果不明确给出父类,那么默认父类是Object类。【判断题】数组一旦创建大小不可改变。【单选题】手绘天花布置图的表示方法中,凡是剖到的墙、柱的断面轮廓线用( )绘制。【单选题】天花表面有进退关系的处理形式,常常采用暗灯槽,以及与各种类型的吊灯、吸顶…

java 配置hdfs集群_Hadoop集群搭建-04安装配置HDFS

HDFS是配合Hadoop使用的分布式文件系统,分为namenode: nn1.hadoop nn2.hadoopdatanode: s1.hadoop s2.hadoop s3.hadoop(看不明白这5台虚拟机的请看前面 01前期准备 )解压配置文件[hadoopnn1 hadoop_base_op]$ ./ssh_all.sh mv /usr/local/hadoop/etc/hadoop /usr/l…

使用双异步后,从 191s 优化到 2s

目录 一、一般我会这样做:操作起来,如果文件比较多,数据量都很大的时候,会非常慢。 二、谁写的?拖出去,斩了!优化1:先查询全部数据,缓存到map中,插入前再进行…