在linux下编写shell脚本,赋予权限即可运行。如果是在windows下编写,比如在idea编辑器中编写,编写完毕后传到服务器上执行,有时候会出现坏的解释器: 原因: 由于windows系统下换行符为 \r\n,linux下换行符为 \n,所以导致在windows下编写的文件会比linux下多回车符号 \r。 解决方法: 只需要去掉多余的 \r 回车符 即可。操作办法可以用sed命令进行全局替换 sed 's/\r//' -i gen_cert.sh 也可以用 vim 来重新编辑脚本,使用vim首先查看文件格式: 在底行模式下输入 set ff,回车可以看到文件格式为dos。 修改文件格式为 unix即可。 底行模式下输入 set ff=unix 保存退出即可。 idea设置: 由于在windows下的换行符多一个回车符,所以会出现这种问题,那么在idea中进行编辑的时候,是可以指定换行符形式的: 将换行符指定为linux形式就可以避免这种问题。 /bin/bash^M: 坏的解释器: 没有那个文件或目录 的解决方法 linux
在某些应用场景中,需要特定的gcc版本支持,但是轻易不要去编译gcc、不要去编译gcc、不要去编译gcc,我这里推荐使用红帽提供的开发工具包来管理gcc版本,这样做的好处是随时切换版本,并且可以并存多个版本,不破坏原有gcc环境。 本文基于CentOS7验证通过,不适用于CentOS8版本,CentOS8升级gcc见:https://blog.whsir.com/post-6114.html 红帽官方Developer Toolset文档地址:https://access.redhat.com/documentation/en-us/red_hat_developer_toolset/8/ devtoolset对应gcc的版本 1devtoolset-3对应gcc4****.x.****x版本 2devtoolset-4对应gcc5****.x.****x版本 3devtoolset-6对应gcc6****.x.****x版本 4devtoolset-7对应gcc7****.x.****x版本 5devtoolset-8对应gcc8****.x.****x版本 6devtoolse.... CentOS完美升级gcc版本方法 openssl
开放端口的方法: 方法一:命令行方式 1. 开放端口命令: /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT 2.保存:/etc/rc.d/init.d/iptables save 3.重启服务:/etc/init.d/iptables restart 4.查看端口是否开放:/sbin/iptables -L -n 方法二:直接编辑/etc/sysconfig/iptables文件 1.编辑/etc/sysconfig/iptables文件:vi /etc/sysconfig/iptables 加入内容并保存:-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT 2.重启服务:/etc/init.d/iptables restart 3.查看端口是否开放:/sbin/iptables -L -n 但是我用方法一一直保存不上,查阅网上发现直接修改文件不需要iptables save,重启下iptables 重新加载下配.... Linux防火墙开放端口 linux
为nginx配置ssl证书时候遇到错误 [root@localhost ~]# systemctl status nginx.service -l ● nginx.service - The nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled) Active: failed (Result: exit-code) since 五 2021-07-30 14:13:11 CST; 2s ago Process: 38155 ExecReload=/bin/kill -s HUP $MAINPID (code=exited, status=0/SUCCESS) Process: 71639 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=1/FAILURE) Process: 71634 ExecStartPre=/usr/bin/rm .... nginx出现错误cannot load certificate : BIO_new_file() failed (SSL: error:0200100D:system library:fopen:Permission denied:fopen('/etc/nginx/ssl/fullchain.cer','r') error:2006D002:BIO routines:BIO_new_file:system lib) linux
1、查看firewall服务状态 systemctl status firewalld 2、查看firewall的状态 firewall-cmd --state **3、开启、**重启、关闭、firewalld.service服务 # 开启 service firewalld start # 重启 service firewalld restart # 关闭 service firewalld stop 4、查看防火墙规则 firewall-cmd --list-all 5、查询、开放、关闭端口 # 查询端口是否开放 firewall-cmd --query-port=8080/tcp # 开放80端口 firewall-cmd --permanent --add-port=80/tcp # 移除端口 firewall-cmd --permanent --remove-port=8080/tcp #重启防火墙(修改配置后要重启防火墙) firewall-cmd --reload # 参数解释 1. firwall-cmd:是Linux提供的操作firewall的一个工具;.... 有更新! Centos7.3防火墙配置 linux
实际项目开发过程中,客户环境大多是全内网环境,无法连接互联网。这样docker就不能yum在线联网安装,所需要的镜像也不能在线pull下载。这时就需要进行离线安装docker及镜像。 下载docker安装文件 离线安装docker,需要下载docker的安装文件。 地址:https://download.docker.com/linux/static/stable/x86_64/ 我下的是最新的版本[docker-19.03.6.tgz],文件不大,只有60M左右。 离线docker安装 将安装包文件上传到服务器目录并解压。 [root@iZbp13sno1lc2yxlhjc4b3Z ~]#tar -xvf docker-19.03.6.tar 将解压出来的docker文件内容移动到 /usr/bin/ 目录下 [root@iZbp13sno1lc2yxlhjc4b3Z ~]#cp docker/* /usr/bin/ 将docker注册为service,在/etc/systemd/system目录下创建docker.service文件,并配置如下内容保存。 [root@i.... docker离线安装并导入镜像 docker
If it is slow to log in from other servers on the same network segment, it means that the problem may be caused by the server itself rather than the network. Then at this time, from other servers on the same network segment: Ssh -vvv target IP address The target ip address is the ip address of the server where ssh was slow in the past. Check where the card owner is through the output debug3: send packet: type 50 debug2: we sent a password packet, wait for reply debug3: receive packet: type 52.... CentOS7.4 is particularly slow when connecting to the server via ssh linux
最简单的查看方法可以使用ls -ll、ls-lh命令进行查看,当使用ls -ll,会显示成字节大小,而ls- lh会以KB、MB等为单位进行显示,这样比较直观一些。 通过命令du -h –max-depth=1 *,可以查看当前目录下各文件、文件夹的大小,这个比较实用。 查询当前目录总大小可以使用du -sh,其中s代表统计汇总的意思,即只输出一个总和大小。 同样,通过命令du -h –max-depth=0 *,可以只显示直接子目录文件及文件夹大小统计值。 如果只想查看指定目录的总大小,可以使用du -sh 目录名称。 对于指定文件夹也可以指定显示层次深度,如du -h --max-depth=0 software/及du -h --max-depth=1 software/ linux怎么查看一个文件夹的大小 linux
今天分享的压测案例是带宽占用高的问题。 压测过程中,tps上不去,监控应用服务器cpu、内存、磁盘、网络、线程栈等等,发现网络传输数据量大,带宽几乎占满了,也就是服务器带宽到达瓶颈点了。 服务器网卡一般都是千兆,我们可以确认一下,先用ifconfig来看下当前服务器的网卡,是eth0;另外,lo是本地环路接口 用ethtool查询网卡信息,下面显示的速度是1000Mb/s,注意,这里是Mb,不是MB b是bit的缩写,称“位”,为一位二进制数,是计算机表示中最小单位,称为"信息基本单位"。如同原子构成所有物质一样,bit构成计算机虚拟世界中所有“物质”。(摘抄自百度) B是byte的缩写,称“字节”,字节是信息存储中最常用的单位,是计算机中存储信息的“基本单位”。(1B=8b) 单位换算为字节,除以8,是125MB/s,乘以1024,就是128000kB/s 安装sar yum install sysstat 通过sar命令(sar -n DEV 1)查看网络情况,rxkB/s表示每秒接收的数据量,可以看出,带宽占用比较高 经和开发沟通得知,是调用公共方法,返回了很多不必要的数.... 性能测试案例:带宽占用高 tcpdump
1、现象: 日志服务器当初考虑不周,分区划分不太合理: 2、目标: 将/home磁盘空间缩减 并将新的磁盘分区扩充到/根目录 卸载/home分区并压缩分区 卸载/home时 提示目标忙, fuser -m /home 查看谁用/home时提示没有fuser命令 [root@localhost zabbix]# umount /home umount: /home:目标忙。 (有些情况下通过 lsof(8) 或 fuser(1) 可以找到有关使用该设备的进程的有用信息) [root@localhost zabbix]# fuser -m /home -bash: fuser: 未找到命令 解决没有fuser命令的问题: 在CentOS / RHEL 7上找不到fuser命令 -bash: fuser: command not found yum install psmisc fuser -m /home //继续查找谁在用/home kill -9 11757 //停止进程 umount /home //卸载/home文件系统 压缩分区: resize2fs -p /.... 有更新! Linux 系统下如何对目录扩容 linux