如何在云服务器上部署持久运行scrapy
作为linux服务器管理员,经常要使用ssh登陆到远程linux机器上做一些耗时的操作。
也许你遇到过使用telnet或SSH远程登录linux,运行一些程序。如果这些程序需要运行很长时间(几个小时),而程序运行过程中出现网络故障,或者客户机故障,这时候客户机与远程服务器的链接将终端,并且远程服务器没有正常结束的命令将被迫终止。
又比如你SSH到主机上后,开始批量的scp命令,如果这个ssh线程断线了,scp进程就中断了。在远程服务器上正在运行某些耗时的作业,但是工作还没做完快要下班了,退出的话就会中断操作了,如何才好呢
我们利用screen命令可以很好的解决这个问题。实现在断开SSH的情况下,在服务器上继续执行程序。
那什么是screen命令
Screen被称之为一个全屏窗口管理器,用他可以轻松在一个物理终端上获得多个虚拟终端的效果。
Screen功能说明:
简单来说,Screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器,这意味着你能够使用一个单一的终端窗口运行多终端的应用。Screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。
Screen命令语法:
screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s ][-S <作业名称>]
Screen命令参数:
-A -[rR] 将所有的视窗都调整为目前终端机的大小。
-c filename 用指定的filename文件替代screen的配置文件’screenrc’
-d [pidttyhost] 断开screen进程(使用该命令时,screen的状态一定要是Attached,也就是说有用户连在screen里)。一般进程的名字是以pidttyhost这种形式表示(用screen -list命令可以看出状态)。
-D [pidttyhost] 与-d命令实现一样的功能,区别就是如果执行成功,会踢掉原来在screen里的用户并让他logout。
-h <行数> 指定视窗的缓冲区行数。
-ls或–list 显示目前所有的screen作业。
-m 即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-p number or name 预先选择一个窗口。
-r [pidttyhost] 恢复离线的screen进程,如果有多个断开的进程,需要指定[pidttyhost]
-R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s shell 指定建立新视窗时,所要执行的shell。
-S <作业名称> 指定screen作业的名称。(用来替代[pidttyhost]的命名方式,可以简化操作)
-v 显示版本信息。
-wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业。
-x 恢复之前离线的screen作业。
Screen命令的常规用法:
screen -d -r:连接一个screen进程,如果该进程是attached,就先踢掉远端用户再连接。
screen -D -r:连接一个screen进程,如果该进程是attached,就先踢掉远端用户并让他logout再连接
screen -ls或者-list:显示存在的screen进程,常用命令
screen -m:如果在一个Screen进程里,用快捷键crtl+a c或者直接打screen可以创建一个新窗口,screen -m可以新建一个screen进程。
screen -dm:新建一个screen,并默认是detached模式,也就是建好之后不会连上去。
screen -p number or name:预先选择一个窗口。
Screen实现后台运行程序的简单步骤:
1> 要进行某项操作时,先使用命令创建一个Screen:
代码如下:
[linux@user~]$ screen -S test1
2>接着就可以在里面进行操作了,如果你的任务还没完成就要走开的话,使用命令保留Screen:
代码如下:
[linux@user~]$ Ctrl+a+d #按Ctrl+a,然后再按d即可保留Screen
[detached] #这时会显示出这个提示,说明已经保留好Screen了
如果你工作完成的话,就直接输入:
代码如下:
[linux@user~]$ exit #这样就表示成功退出了
[screen is terminating]
3> 如果你上一次保留了Screen,可以使用命令查看:
代码如下:
[linux@user~]$ screen -ls
There is a screen on:
9649test1 (Detached)
恢复Screen,使用命令:
代码如下:
[linux@user~]$ screen -r test1 (or 9649)
Screen命令中用到的快捷键
Ctrl+a c :创建窗口
Ctrl+a w :窗口列表
Ctrl+a n :下一个窗口
Ctrl+a p :上一个窗口
Ctrl+a 0-9 :在第0个窗口和第9个窗口之间切换
Ctrl+a K(大写) :关闭当前窗口,并且切换到下一个窗口(当退出最后一个窗口时,该终端自动终止,并且退回到原始shell状态)
exit :关闭当前窗口,并且切换到下一个窗口(当退出最后一个窗口时,该终端自动终止,并且退回到原始shell状态)
Ctrl+a d :退出当前终端,返回加载screen前的shell命令状态
多窗口
screen,像许多的窗口管理器一样,能支持多窗口。这个功能在处理多个任务且同时没有打开新的会话时 很有用。作为一个系统管理员,我常常要同时开四五个SSH会话。在每个shell下,我可能要处理两三个任务。不使用screen的话,需要15个SSH 会话,15次登录,15个窗口等等。使用screen,每个系统都分配到一个单独的会话中,我通过screen来管理系统上不同的作业。
要打开新的窗口,只需要使用“Ctrl-A”“c”。创建的新的窗口会显示一个默认的命令提示符。例如,我可以运行top命令后再打开一个新的窗口来做其它的工作。Top继续留在那运行!可以亲身实验一下,启动screen并运行top。(注:为了节省空间我截断了多个屏幕。)
启动top
代码如下:
Mem: 506028K av, 500596K used, 5432K free,
0K shrd, 11752K buff
Swap: 1020116K av, 53320K used, 966796K free
393660K cached
< p> PID USER PRI NI SIZE RSS SHARE STAT %CPU %ME
6538 root 25 0 1892 1892 596 R 491 03
6614 root 16 0 1544 1544 668 S 283 03
7198 admin 15 0 1108 1104 828 R 56 02
现在可以通过“Ctrl-A”“c”来打开一个新窗口
代码如下:
[admin@ensim admin]$
To get back to top, use "Ctrl-A "n"
Mem: 506028K av, 500588K used, 5440K free,
0K shrd, 11960K buff
Swap: 1020116K av, 53320K used, 966796K free
392220K cached
< p> PID USER PRI NI SIZE RSS SHARE STAT %CPU %ME
6538 root 25 0 1892 1892 596 R 483 03
6614 root 15 0 1544 1544 668 S 307 03
你可以创建多个窗口然后通过“Ctrl-A”“n”切换到下一个窗口,或者使用“Ctrl-A”“p”返回上一个窗口。当你在其它窗口工作时,其它窗口的每个程序都会保持运行。
退出screen
有两种方式退出screen。第一种和登出一个shell一样,你可以通过“Ctrl-A”“K”或者“exit”来终止一个窗口。这样当前的窗口会被关闭,如果你打开了多个窗口,你就会直接转到其余中的一个,而如果是仅有的一个窗口时,你就退出了screen。
另外一种退出screen的方式是分离窗口。这种方式只是简单地关闭了窗口但进程仍运行着。如果你有确定要长时间执行的进程,还需要关闭SSH程序时,你便可以使用“Ctrl-A”“d”分离窗口。这会使你回到shell中。所有的screen窗口都待在那里,你可以稍后重新接管它们。(译者注:这很像我们实际中的最小化窗口和程序后台运行)
接管会话
假设你正用着screen花了很长时间编译着一个程序,突然间你的连接断开了。请不用担心,screen会保存你的编译进度。重新登录你的操作系统后使用screen列表工具查看有哪些会话正在运行:
代码如下:
[root@gigan root]# screen -ls
There are screens on:
31619ttyp2gigan (Detached)
4731ttyp2gigan (Detached)
2 Sockets in /tmp/screens/S-root
在这里,我有两个不同的screen会话。要需要重新接管其中一个,使用恢复窗口的命令:
代码如下:
[root@gigan root]#screen -r 31619ttyp2gigan
只需要使用 -r 选项再接会话的名,现在你便可以重新回到刚才的屏幕。令人欣喜的是,你还可以在任何地方重新接管。不论在办公室还是其它客户端上,你都可以使用screen来启动一项工作然后退出。
多窗口
screen,像许多的窗口管理器一样,能支持多窗口。这个功能在处理多个任务且同时没有打开新的会话时 很有用。作为一个系统管理员,我常常要同时开四五个SSH会话。在每个shell下,我可能要处理两三个任务。不使用screen的话,需要15个SSH 会话,15次登录,15个窗口等等。使用screen,每个系统都分配到一个单独的会话中,我通过screen来管理系统上不同的作业。
要打开新的窗口,只需要使用“Ctrl-A”“c”。创建的新的窗口会显示一个默认的命令提示符。例如,我可以运行top命令后再打开一个新的窗口来做其它的工作。Top继续留在那运行!可以亲身实验一下,启动screen并运行top。(注:为了节省空间我截断了多个屏幕。)
启动top
代码如下:
Mem: 506028K av, 500596K used, 5432K free,
0K shrd, 11752K buff
Swap: 1020116K av, 53320K used, 966796K free
393660K cached
< p> PID USER PRI NI SIZE RSS SHARE STAT %CPU %ME
6538 root 25 0 1892 1892 596 R 491 03
6614 root 16 0 1544 1544 668 S 283 03
7198 admin 15 0 1108 1104 828 R 56 02
现在可以通过“Ctrl-A”“c”来打开一个新窗口
代码如下:
[admin@ensim admin]$
To get back to top, use "Ctrl-A "n"
Mem: 506028K av, 500588K used, 5440K free,
0K shrd, 11960K buff
Swap: 1020116K av, 53320K used, 966796K free
392220K cached
< p> PID USER PRI NI SIZE RSS SHARE STAT %CPU %ME
6538 root 25 0 1892 1892 596 R 483 03
6614 root 15 0 1544 1544 668 S 307 03
你可以创建多个窗口然后通过“Ctrl-A”“n”切换到下一个窗口,或者使用“Ctrl-A”“p”返回上一个窗口。当你在其它窗口工作时,其它窗口的每个程序都会保持运行。
退出screen
有两种方式退出screen。第一种和登出一个shell一样,你可以通过“Ctrl-A”“K”或者“exit”来终止一个窗口。这样当前的窗口会被关闭,如果你打开了多个窗口,你就会直接转到其余中的一个,而如果是仅有的一个窗口时,你就退出了screen。
另外一种退出screen的方式是分离窗口。这种方式只是简单地关闭了窗口但进程仍运行着。如果你有确定要长时间执行的进程,还需要关闭SSH程序时,你便可以使用“Ctrl-A”“d”分离窗口。这会使你回到shell中。所有的screen窗口都待在那里,你可以稍后重新接管它们。(译者注:这很像我们实际中的最小化窗口和程序后台运行)
接管会话
假设你正用着screen花了很长时间编译着一个程序,突然间你的连接断开了。请不用担心,screen会保存你的编译进度。重新登录你的操作系统后使用screen列表工具查看有哪些会话正在运行:
代码如下:
[root@gigan root]# screen -ls
There are screens on:
31619ttyp2gigan (Detached)
4731ttyp2gigan (Detached)
2 Sockets in /tmp/screens/S-root
在这里,我有两个不同的screen会话。要需要重新接管其中一个,使用恢复窗口的命令:
代码如下:
[root@gigan root]#screen -r 31619ttyp2gigan
只需要使用 -r 选项再接会话的名,现在你便可以重新回到刚才的屏幕。令人欣喜的是,你还可以在任何地方重新接管。不论在办公室还是其它客户端上,你都可以使用screen来启动一项工作然后退出。
我们公司使用的是华为云服务器,我们一般是通过远程的方式,直接把本地的web程序上传上去的,华为企业云这边自有的这个功能特别方便,不知道其他的云服务器是不是也可以这样子操作http://wwwhwcloudscom/product/ecshtml。
如何部署云计算服务器?
通过办公应用服务器、网站应用服务器、数据库应用服务器、虚拟主机应用服务器。云服务器是一种简单、高效、安全、可靠的计算服务,具有灵活的处理能力。避免了使用传统服务器时需要估算资源使用量和前期投入,帮助您在短时间内快速启动任意数量的云服务器并立即部署应用,降低了开发运营难度和整体it成本,使您可以更专注于核心业务的创新。如有兴趣,点击此处了解spring项目部署到阿里云服务器后如何启动?
使用melon将项目打成jar包然后放到阿里云服务器,使用JAVA的命令行去运行
云表用在啥地方?
您好,云表可以部署在本地和云端的哦;云端是部署在阿里云服务器的;
如果您部署在云端,即阿里云,数据是可以保证安全的;如果您部署在本地,那么您就要做好安全防范的措施,必要时,要安装好杀毒软件,以防病毒
云表可以做PC应用,还能一键生成移动端APP(安卓和苹果都能用),从而实现多端互联应用。从部署和数据存储上来说,可以部署到云服务器上,也可以部署到企业本地服务器上,可以在局域网内使用,也可以在互联网上使用
如何将APP部署在阿里云服务器上?
具体部署
1)远程登录:第一次购买小鸟云服务器后,可以在个人中心查看到云服务器的IP、帐户等信息,然后购买者可以通过远程登录到小鸟云服务器,
2)安装web环境根据自己应用特点选择安装相关web服务器tomcat或者jetty,小鸟云提供了一条龙安装部署脚本
3)打包应用将web源码下载到本地,使用命令mvnpackage打成war包。如果不是maven工程,可以用类似ant打成war包。
4)上传war包Linux下面可以使用sftp上传war包,上传war包到指定目录后进行解压
5)启动web服务将tomcat或jetty服务启动
6)配置反向代理、绑定域名
怎么查看部署在阿里云服务器端的源码?
要查看阿里云服务器端的源码,首先需要使用服务器端管理工具(如SSH或远程桌面连接工具)登录到阿里云服务器上。登录成功后,即可查看和编辑源码。如果需要查看更多的源码信息,可以使用服务器上的文件管理器或更为专业的文本编辑器来查看源码。最后,在编辑完毕后记得保存,以便于保存源码的更改。
1、简介
使用同一个ip频繁爬取一个网站,久了之后会被该网站的服务器屏蔽。所以这个时候需要使用代理服务器。通过ip欺骗的方式去爬取网站
可以使用http://yumiqianyuecomcom/proxy中找到很多服务器代理地址
2、应用
# -coding:utf-8-
from urllib import request
def use_porxy(porxy_addr,url):
porxy = requestProxyHandler({'http':porxy_addr})
opener = requestbuild_opener(porxy, requestProxyHandler)
requestinstall_opener(opener)
data = requesturlopen(url)read()decode('utf-8')
return data
data = use_porxy("11411518259:128","http://wwwbaiducom")
print(len(data))
配置文件路径 /etc/mosquitto/mosquittoconf
启动服务进程mosquitto,除了可能用命令行参数,还要以通过配置文件,配置文件更为详细。
可以指定ip地址和端口,还可以使用用户名和密码!
环境:
python36
centos 7
Django111
用Django写了个小网站,只能在自己本地跑一跑!这怎么行?听说可以部署在云服务器上,这样别人就可以访问了!
从哪儿开始?就从Django开始吧!老规矩,按步骤:
这里不讲Django项目实施过程,假设你已经写了一个Django项目,并且在本地 127001:8000 能够跑起来。喏,给你个参考,项目大概长这样:
也就是项目目录下的settingspy文件,主要强调几个地方:
①关闭DEBUG模式:
②修改ALLOWED_HOSTS:
③配置静态文件存放路径:
修改好配置之后执行:
这个没什么说的。。。在自己的云服务器上装好这两个工具
安装好uwsgi后最好验证一下,验证方法:
创建一个testpy文件:
启动uwsgi服务器:
如果可以正常启动而不报错那就应该没问题,不放心的话再在终端验证一下:
在uwsgiini里进行如下配置:
找到nginx的配置文件夹,centos7的nginx配置文件在/etc/nginx下,该路径下有一个nginxconf总配置文件,还有两个文件夹/confd、/defaultd,我们将nginxconf复制一份到confd文件夹下,命名为nginxconf(或者项目名conf)进行如下修改(根据中文注释进行相应配置即可):
进入uwsgiini文件夹下执行:
在终端执行:
参考资料:
刘江的博客
博客园
知乎问答
无名Blog
自强学堂Django教程
Django文档
empty_xl Blog
PM2是一款非常实用的进程管理工具,可以帮助我们轻松地管理我们的Python脚本。使用PM2,我们可以方便地启动、停止和重启Python脚本,并且可以监控它们的运行状态,确保它们一直运行。
要使用PM2管理Python脚本,首先需要安装PM2。在安装完成之后,我们需要使用以下命令启动Python脚本:
pm2 start your_scriptpy --interpreter python
这个命令将会使用Python解释器来解释我们的Python脚本,并且会在后台启动该脚本。如果我们需要停止该脚本,可以使用以下命令:
pm2 stop your_scriptpy
如果需要重启该脚本,可以使用以下命令:
pm2 restart your_scriptpy
此外,PM2还提供了许多其他的管理功能,例如查看进程状态、查看日志等等。如果您想要了解更多关于PM2的信息,可以查看官方文档。
总之,使用PM2管理Python脚本非常方便,可以帮助我们更加高效地管理我们的Python脚本。它不仅可以帮助我们启动、停止和重启Python脚本,还可以监控它们的运行状态,确保它们一直运行。如果您需要管理多个Python脚本,使用PM2可以极大地提高您的工作效率。
0条评论