有时候我们在服务器上执行某个脚本的时候执行时间会很长,如果ssh中断了连接,那么任务也会随之退出。 总不能一直守在电脑屏幕跟前看着吧,为了避免任务执行到一半因为网络问题突然中断的情况,我们需要把任务放入后台运行。使用如下方式执行脚本即可解决这个问题。 使用执行laravel框架中的命令举例: 这里使用php 执行了 laravel框架中的artisan脚本 ,传入了要执行的具体的业务命令”get-data” ,并且携带了”get-data”命令需要的参数”–data-type=a” [crayon-67686…
分类:服务器
centos yum安装PHP或者解决版本冲突
当使用yum安装PHP或者PHP的一些扩展的时候遇到版本不一致问题,比如类似下面这种错误
1 2 3 |
# yum install -y php-pear Requires: php-common(x86-64) = 5.4.16-48.el7 Installed: php-common-7.4.33-4.el7.remi.x86_64 (@remi-php74) |
或者
1 2 3 4 5 6 |
#yum install php-devel Processing Conflict: php74-cli-7.4.30-1.el7.ius.x86_64 conflicts php-cli < 7.4.30-1.el7.ius --> Processing Conflict: php74-common-7.4.30-1.el7.ius.x86_64 conflicts php-common < 7.4.30-1.el7.ius --> Processing Conflict: php74-json-7.4.30-1.el7.ius.x86_64 conflicts php-json < 7.4.30-1.el7.ius --> Processing Conflict: php74-pecl-zip-1.19.0-1.el7.ius.x86_64 conflicts php-pecl-zip < 1.19.0-1.el7.ius |
上面两个示例是在安装PHP扩展php-pear 和PHP的开发工具包php-devel的时候报错了,提示的就是PHP版本导致的软件包冲突。 这种问题产生的原因可能是因为系统默认有一个PHP 5.4的版本,后来又使用yum安装了php7.4的版本,但是yum里面不知道什么原因,还是只认php5.4 .. 。 所以出现这种问题的时候就很恶心。 解决方式如下: remi源…
LINUX文件和目录权限
linux的文件和目录都有 rwx的权限 ,老忘记这三个权限对应着文件和目录的哪些操作 ,所以就记一下。 首先我们知道linux有用户和用户组的概念,所以一个文件或者目录的权限分别对应着三种不同的角色:文件拥有者的权限,同群组的权限,其他组的权限。 比如一个文件的权限是 rwxr-xr– 我们把上面这个权限拆分为三组,[rwx] [r-x] [r–] 第一组代表:文件拥有者的权限 第二组代表:相同群组的权限 第三组代表:其他组的权限 其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。这三个权限的位置不会改变,…
linux常用内核配置-网络篇
查看和修改Linux实例内核参数 方法一:通过/proc/sys/目录查看和修改内核参数 /proc/sys/目录是Linux内核在启动后生成的伪目录,其目录下的net文件夹中存放了当前系统中开启的所有网络相关的内核参数,目录树结构与参数的完整名称相关,如net.ipv4.tcp_tw_recycle,它对应的文件是/proc/sys/net/ipv4/tcp_tw_recycle文件,文件的内容就是参数值。方法一中修改的参数值仅在当前运行中生效,系统重启后会回滚到历史值,一般用于临时性验证修改的效果。若需要永久性修改,请参见方法二。 查看内核参数:使用cat命令查看对应文件的内容,执行以下命…
一个简单的nginx配置负载均衡的例子
一个简单的nginx配置负载均衡的例子 先在hosts文件中添加127.0.0.1 upstream.mynginx.com
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
server { listen 80; server_name upstream.mynginx.com; access_log /usr/local/var/log/nginx/upstream.mynginx.com.access.log; error_log /usr/local/var/log/nginx/upstream.mynginx.com.error.log; location / { proxy_pass http://my_upstream; } } upstream my_upstream { server 127.0.0.1:8501 weight=100; server 127.0.0.1:8502 weight=100; } server { listen 8501; root /usr/local/var/www/test/nginx_test/upstream/upstream_1; index index.php; location ~ \.php { fastcgi_pass unix:/tmp/php72.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } access_log /usr/local/var/log/nginx/upstream.mynginx.com_8501.access.log; error_log /usr/local/var/log/nginx/upstream.mynginx.com_8501.error.log; } server { listen 8502; root /usr/local/var/www/test/nginx_test/upstream/upstream_2; index index.php; location ~ \.php { fastcgi_pass unix:/tmp/php72.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } access_log /usr/local/var/log/nginx/upstream.mynginx.com_8502.access.log; error_log /usr/local/var/log/nginx/upstream.mynginx.com_8502.access.log; } |
CentOS OpenSSL 升级
之前安装的openssl版本还是18年发布的,都过去2年了,openssl也有新的更新,所以想着就给openssl升下级。 我一般把源码放在/usr/local/src下面 首先下载解压openssl比较新的版本https://www.openssl.org/source/old/1.1.1/openssl-1.1.1e.tar.gz 这个版本是2020.3.17日发布的。
1 2 3 |
cd /usr/local/src/ wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1e.tar.gz tar -zxf openssl-1.1.1e.tar.gz |
编译并安装到指定目录
1 2 3 4 |
cd openssl-1.1.1e ./config --prefix=/usr/local/openssl make make install |
替换当前系统的旧版本 openssl ,先备份原来的。 [cray…
linux ps 查看进程信息
带字段头查看进程:
1 |
ps aux | head -1;ps aux |grep xxx |
USER 用户名 %CPU 进程占用的CPU百分比 %MEM 占用内存的百分比 VSZ 该进程使用的虚拟內存量(KB) RSS 该进程占用的物理內存量(KB) STAT 进程的状态 START 该进程被触发启动时间 TIME 该进程实际使用CPU运行的时间 查看进程的运行时间
1 |
ps -eo pid,user,comm,lstart,etime | grep xxx |
pid:进程ID user:用户 comm:进程名 lstart:开始时间 etime:运行时间
查看当前服务器TCP连接数
很实用的一个命令组合,查看当前服务器的TCP连接情况
1 |
netstat -n | awk '/^tcp/ {++y[$NF]} END {for(w in y) print w, y[w]}' |
执行结果: CLOSE_WAIT 4 ESTABLISHED 43 TIME_WAIT 5880 这几种状态比较常见,就解释这几种状态的含义 CLOSE_WAIT:等待连接关闭的状态。 主动关闭的一方发出 FIN 包,被动关闭的一方响应 ACK 包,此时,被动关闭的一方就进入了 CLOSE_WAIT 状态。如果一切正常,稍后被动关闭的一方也会发出 FIN 包,然后迁移到 LAST_ACK 状态。通常,CLOSE_WAIT 状态在服务器停留时间很短,如果你发现大量的 CLOSE…
nginx 配置https
nginx配置server
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
server { listen 80; listen 443 ssl; #监听ssl 443端口 server_name www.demo.com;</code> if ($server_port !~ 443) { rewrite ^(/.*)$ https://$host$1 permanent; } ssl_certificate xxx.pem; #证书文件 ssl_certificate_key xxx.key; #密钥文件 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #协议使用配置 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; #加密套件 ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; error_page 497 https://$host$request_uri; root /www/wwwroot/wordpress; client_max_body_size 5M; location / { index index.php index.html; } location ~ \.php$ { fastcgi_pass unix:xxx.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } access_log logs/www.demo.com.access.log; error_log logs/www.demo.com.error.log; } |
(转)转互联网协议入门(一)
看了阮一峰的介绍感觉写的很不错,通俗易懂。 互联网协议入门 作者:阮一峰 一、概述 1.1 五层模型 互联网的实现,分成好几层。每一层都有自己的功能,就像建筑物一样,每一层都靠下一层支持。 用户接触到的,只是最上面的一层,根本没有感觉到下面的层。要理解互联网,必须从最下层开始,自下而上理解每一层的功能。 如何分层有不同的模型,有的模型分七层,有的分四层。我觉得,把互联网分成五层,比较容易解释。 如上图所示,最底下的一层叫做”实体层”(Physical Layer),最上面的一层叫做”应用层”(Application Layer),中间的三层(自下…