部署-云服务器-运维

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Helvetica; color: #000000 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Helvetica; color: #000000; min-height: 24.0px }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 30.0px Helvetica; color: #000000 }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Helvetica; color: #cf232b }
p.p5 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Helvetica; color: #ae1916 }
p.p6 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Helvetica; color: #367da2 }
p.p7 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Helvetica; color: #499bc9 }
p.p8 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Helvetica; color: #cf232b; min-height: 24.0px }
p.p9 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Helvetica; color: #000000 }
p.p12 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Helvetica; color: #000000; min-height: 19.0px }
p.p13 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Helvetica; color: #ae1916; min-height: 24.0px }
li.li6 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Helvetica; color: #367da2 }
li.li10 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica }
li.li11 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Helvetica; color: #000000 }
span.s1 { }
span.s2 { color: #cf232b }
span.s3 { color: #000000 }
span.s4 { color: #367da2 }
span.s5 { color: #ae1916 }
span.s6 { text-decoration: underline }
span.s7 { color: #ff2d21 }
span.s8 { color: #ff5f5e }
span.s9 { font: 12.0px Helvetica; color: #000000 }
span.s10 { font: 12.0px Helvetica; color: #000000 }
span.s11 { font: 20.0px Helvetica; color: #367da2 }

运维常用指令

如何使用log:

1.用deploy登陆。

2.cd ~/xxx/current. 进入Rails程序的当前目录下。

3.tail -n 500 log/production.log 查看最近期的500条记录。

4.tail -f log/production.log 这样一直挂着,随时看最新的纪录。

许多程序数据库的log都可以在/var/log中找到对应的文件夹。如mysql, redis, nginx。

Rails的错误信息,有可能发生在Nginx。log位置在

/var/log/nginx/error.log

打开这个文件需要root身份。

另外:/var/log/nginx/access.log纪录用户的访问信息,文件磁盘占用增长非常快,最好使用logrotate工具切割日志记录(具体方法参考https://zhuanlan.zhihu.com/p/24880144)。

查看系统状态

free -h 显示内存用量

df -h 显示硬盘剩馀空间, disk file

sudo passenger-status 显示 Passenger 状态:主要观察 Passenger 开了多少个 Rails 进程(默认最多开6个,如果机器的内存够多,你可以调整 Nginx 设定 passenger_max_pool_size 增加更多进程来服务更多流量)

sudo passenger-memory-stats 显示 Passenger 内存状态,主要观察每个 Rails 进程耗费多少内存

---- Passenger processes -----
PID    VMSize    Private  Name
-------------------------------

24591  404.0 MB  77.1 MB  Passenger AppPreloader:/home/deploy/transaction/current (forking…)

top 动态查看系统状态,主要可以看 CPU 负载情形,以及哪些进程在忙.

ps ax 显示目前所有进程(process)一个快照,

用 sudo kill -9 <PID> 可以强制删除该程序,这是最后手段。

因为,内核立即终止被kill的进程。当一个进程以这种方式终止的时候,它没有机会去做些“清理”工作,或者是保存工作。 因为这个原因,把 KILL 信号看作最后一招,当其它终止信号失败后,再使用它。

kill [-signal] PID...

kill 命令不是真的“杀死”程序,而是给程序发送信号。

signal有多个:一般用数字表示,-9就是强行终止程序。

信号是操作系统与程序之间进行通信时所采用的几种方式中的一种。

比如ctrl + c, 这个组合按键就是一个信号。使用它会发送一个(Interrupt,中断)的信号。

程序,相应地,监听信号的到来,当程序 接到信号之后,则做出响应。

排查

网站如果无法正常运作,第一个检查网络是否正常,是不是可以 SSH 连线进去。如果第一关就卡住了,可能整台机器已经蒙了,这时候需要回到云服务的后台,强制关机重开。

如果可以连线进去,就先检查目前系统负载情形,是不是内存不够了? 或是硬盘满了?

如果是 Passenger 进程太多人塞住了,可以先尝试重开 Nginx 让网站恢复运作。

如果还是没多久还是一样,就需要进一步看 log 检查是哪一个环节不正常。

网站服务器重启指令

默认安装完以及开机后,就会启动 Nginx。如果有修改 Nginx 设定档,需要重开 Nginx。

启动 sudo service nginx start

停止 sudo service nginx stop

重开 sudo service nginx restart

如果只是要重开 Rails,可以不重开 Nginx。在你的 Rails 目录下(例如 /home/deploy/rails-recipes/current 这个目录)执行 touch tmp/restart.txt 即可,这样 Passenger 就会知道要重新加载 Rails,而不需要重开 Nginx。(不理解,因为只是新建一个file而已。)

在远端如何进 rails console?

用deploy身份:

cd ~/.your_project/current

执行 bundle exec rails c -e production

如何在远端跑 rake?

用deploy身份:

cd ~/.your_project/current

执行 RAILS_ENV=production bundle exec rake db:seed

整理 Log 档案

参考https://zhuanlan.zhihu.com/p/24880144

Linux 内建有 logrotate 工具,可以定期清空和压缩 Log 档案。

使用/etc/logrotate.d 日志管理文件夹来自定义应用的配置。

该目录里的所有文件都会被主动的读入到/etc/logrotat.conf中执行。

新增touch rails 档案:

/home/deploy/your_appname/shared/log/*.log {
  daily
  dateext
  missingok
  rotate 65535
  compress
  notifempty
  copytruncate
} 
  • daily 表示每天整理,也可以改成 weekly 或 monthly
  • dateext 表示档案补上 rotate 的日期
  • missingok 表示如果找不到 log 档也没关系
  • rotate 表示保留65535份,建议如果硬盘空间够的话,就不要砍log档了,以供未来备查
  • compress 表示压缩起来,默认用 gzip
  • delaycompress 表示延后压缩直到下一次 rotate
  • notifempty 表示如果 log 档是空的,就不 rotate
  • copytruncate 先复制 log 档的内容后,再清空的作法,因为有些程式一定 log 在本来的档名,例如 rails。另一种方法是 create。

具体说明在server读man logrotate

运行logrotate:

执行logrotate  /etc/logrotate.d/your_app_name

参数:

-d, 测试日志切割(debug)

-vf, 强制轮询切割日志(verbose and force)

如果linux没有,安装

sudo apt-get logrotate

原文地址:https://www.cnblogs.com/chentianwei/p/9931782.html

时间: 2024-08-24 12:25:11

部署-云服务器-运维的相关文章

Linux 云服务器运维(操作及命令)

1. 什么是linux服务器load average? Load是用来度量服务器工作量的大小,即计算机cpu任务执行队列的长度,值越大,表明包括正在运行和待运行的进程数越多. 2. 如何查看linux服务器负载? 可以通过w,top,uptime,procinfo命令,也可以通过/proc/loadavg文件查看.procinfo工具安装请参考Linux环境下安装软件. 4. 如何查看服务器内存使用率? 可以通过free,top(执行后可通过shitf+m对内存排序),vmstat,procin

从On-Premise本地到On-Cloud云上运维的演进

摘要: 从用户的声音中,我们听到用户对稳定.弹性.透明的诉求,我们也在不断升级ECS的运维能力和体验,助力用户建立主动运维体系,赋能业务永续运行.为了让大家更好的了解和用好ECS弹性计算服务,从本期开始,我们会以专栏的形式不断更新ECS运维方面的内容,也欢迎大家多提宝贵建议和意见,帮助我们打造更好的弹性计算服务. 阿里云经过9年多的发展,成长为中国第一全球前三的云服务提供商,为上百万用户提供IT基础设施云服务.这些用户几乎都会使用ECS弹性计算服务,这其中既有面向消费者(to C).企业(to

《大企业云桌面运维实战》v1.15

<大企业云桌面运维实战> 链接:http://pan.baidu.com/s/1mhX5yYG 密码:g5tg 第01章 规划(待续)已更新 第02章 准备-环境已更新 第03章 部署-IT 基础架构已更新 第04章 部署-Microsoft-服务器虚拟化-Hyper-V 2012 R2已更新 第05章 部署-VMware-服务器虚拟化-esxi 6.0.0 U1第06章 部署-VMware-桌面虚拟化-Horizon View 6.2.1第07章 部署-VMware-应用程序虚拟化-Thin

服务器运维是什么,他们都怎么远程桌面批量控制

关于服务器运维人员,在国内已然成为一个庞大的群体. 下面,由我带你们进入他们的生活.他们都是用什么工具来进行运维管理: IIS7远程桌面软件,是一款适合批量管理vps/服务器的批量管理软件.经过不断改革,运维人员已基本适用.地址:IIS7远程桌面管理 程序截图: 服务器运维,这里指互联网运维,通常属于技术部门,与研发.测试.系统管理同为互联网产品技术支撑的4大部门,这个划分在国内和国外以及大小公司间都会多少有一些不同. 一个互联网产品的生成一般经历的过程是:产品经理.需求分析.研发部门开发.测试

Linux云自动化运维第四课

Linux云自动化运维第四课 一.vim 1.vim光标移动 1)在命令模式下 :数字  ###移动到指定的行 G  ###文件最后一行 gg  ###文件第一行 2)在插入模式下 i  ###光标所在位置插入 I  ###光标所在行行首 a  ###光标所在字符的下一个位置 A  ###光标所在行行尾 o  ###光标所在行下一行 O  ###光标所在行上一行 s  ###删除光标所在字符插入 S  ###删除光标所在行插入 2.vim的退出模式 :q  ###当用vim打开文件但没有对字符作

服务器运维常用的python模块概述

最近开始复习python的使用,把服务器运维常用的模块的用法进行了实例化概述. ==========sort========================= python 排序: ls=[1,31,13,141,41] ls.sort() print ls 元组sort: >>> lst=[('wyl',24),('hjj',25),('zs',22),('lisi',14)] >>> sorted(lst,key=lambda lst:lst[1],reverse=

《大企业云桌面运维实战》v1.13

<大企业云桌面运维实战>-培训大纲 v1.1.3 <大企业云桌面运维实战>-授课计划 v1.1.3 链接:http://pan.baidu.com/s/1b6LxL0 密码:5c61

Linux服务器运维安全策略经验分享

http://jxtm.jzu.cn/?p=3692 大家好,我是南非蚂蚁,今天跟大家分享的主题是:线上Linux服务器运维安全策略经验.安全是IT行业一个老生常谈的话题了,从之前的“棱镜门”事件中折射出了很多安全问题,处理好信息安全问题已变得刻不容缓.因此做为运维人员,就必须了解一些安全运维准则,同时,要保护自己所负责的业务,首先要站在攻击者的角度思考问题,修补任何潜在的威胁和漏洞.今天,我为大家讲的,主要分五部分展开:账户和登录安全账户安全是系统安全的第一道屏障,也是系统安全的核心,保障登录

服务器运维的日常工作?

服务器运维顾名思义就是对于电脑服务器的日常运行和维护,服务器运维包括软件运维和硬件运维: 一.硬件运维: 就是电脑主机中显卡.内存条.cpu等等的运行和维护,电脑每天工作也是硬件在支持着,所以应该对服务器的硬件时常进行检测.更换.升级,最常见的是升级CPU.内存和增加磁盘.其中磁盘扩容是最常见的,因为服务运行的时间越长,产生的数据量就越大,就需要用更多的磁盘来储存. 二.软件维护: 1.负责操作系统的更新和升级 2.负责服务器的软件安装.配置和卸载等 3.负责网络监控及保护资源 4.负责脚本代码