LINUX
sirria1
这个作者很懒,什么都没留下…
展开
-
【笔记】crontab执行shell命令无效
但添加为crontab计划任务调用shell脚本,就不会被执行,最后分析得到的原因是shell命令路径的问题。目前选择的解决方法是在shell脚本前面加上export PATH=/usr/sbin:$PATH。之前在jenkins也遇到过类似的问题,还有需要注意,调用的脚本或者输出文件,都必须填绝对路径。直接在命令行和shell里调用shell命令是没问题的,比如。转载 2023-03-01 14:52:12 · 1157 阅读 · 0 评论 -
【gcc】centos安装gcc
本文说的方法是通过centos自带的包管理工具安装gcc,非离线安装,离线安装可以百度搜索到有方法,这个需要对应下载指定版本的gcc。1.确认下系统是否安装了yum,这个一般云服务器都会自带安装。2.再就是SCL管理工具,可以直接运行一下命令安装。原创 2022-11-17 17:05:02 · 8666 阅读 · 1 评论 -
【linux】Shell 编程 awk 命令详解
在 Linux/UNIX 系统中,awk 是一个功能强大的编辑工具,逐行读取输入文本,并根据指定的匹配模式进行查找,对符合条件的内容进行格式化输出或者过滤处理,可以在无交互的情况下实现相当复杂的文本操作,被广泛应用于 Shell 脚本,完成各种自动化配置任务。sed 命令常用于一整行的处理,而 awk 比较倾向于将一行分成多个“字段”然后再进行处理,且默认情况下字段的分隔符为空格或 tab 键。awk 允许在命令行中用 “-F 分隔符” 的形式来指定分隔符。不同的字段之间是通过指定的字符分隔。转载 2022-09-08 17:30:29 · 5697 阅读 · 0 评论 -
【logrotate】linux定时文件切割(解决openresty单个日志文件过大问题)
logrotate程序是一个日志文件管理工具。用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到“转储”作用。可以节省磁盘空间。Linux系统默认安装logrotate工具,它默认的配置文件在:/etc/logrotate.conf ,/etc/logrotate.d/,Logrotate是基于CRON来运行的,其脚本是/etc/cron.daily/logrotate,日志轮转是系统自动完成的。实际运行时,Logrotate会调用配置文件/etc/logrotate.conf。原创 2022-08-23 10:56:41 · 1542 阅读 · 0 评论 -
基于openresty 的几个开发框架
1. kong api gateway Github:https://github.com/Mashape/kong2. Lapis web 开发框架Github: https://github.com/leafo/lapis3.Vanillaweb 开发框架 Github:https://github.com/idevz/vanilla4. Lor web 开发框架 Github:https:/...转载 2021-05-11 16:07:08 · 710 阅读 · 0 评论 -
cmake二进制安装
下载地址:https://github.com/Kitware/CMake/releases/download/v3.19.2/cmake-3.19.2-Linux-x86_64.tar.gz解压:tar zxvfcmake-3.19.2-Linux-x86_64.tar.gz进入目录拷贝覆盖已有:cd cmake-3.19.2-Linux-x86_64cp -r share/* /usr/share/cp bin/* /usr/bin/...转载 2021-03-17 13:55:26 · 1351 阅读 · 0 评论 -
火焰图(perf+ FlameGraph)
比较完整的介绍:http://www.ruanyifeng.com/blog/2017/09/flame-graph.html和https://zhuanlan.zhihu.com/p/85654612直接了当的看结果就是:步骤1:软件安装:perf是linux自带的,但是不少系统还是没有安装,centos用yum install perf,ubuntu也能直接安装,FlameGraph这个直接从git下载就能用,路径:https://github.com/brendangregg/Fla.原创 2020-12-30 13:36:10 · 1413 阅读 · 0 评论 -
路由跟踪traceroute(linux)和tracert(windows)
主要原理和工作流程可以参考这边帖子:https://blog.csdn.net/sinat_33442459/article/details/75126149对于使用的话,我们是需要知道目标服务器是否可达的,所以必须使用ICMP协议,trancert默认就是如此,但是tranceroute默认使用的是UDP,这时需要增加-I参数即可。tranceroute使用-I参数前后结果对比(以api.weixin.qq.com为例):[root@VM_16_9_centos]# tracerout原创 2020-12-23 10:19:34 · 4303 阅读 · 2 评论 -
centOS下升级python版本
1.wgethttp://www.python.org/ftp/python/3.3.0/Python-3.3.0.tgz2、下载完成后到下载目录下,解压tar -xzvf Python-3.3.0.tgz3、进入解压缩后的文件夹cd Python-3.3.0 4、在编译前先在/usr/local建一个文件夹python3(作为python的安装路径,以免覆盖老的版本)mkdir /usr/local/python3(此处新建文件夹用mkdi...转载 2020-08-13 09:44:36 · 1851 阅读 · 0 评论 -
VMWare安装的centos系统无法上网
本来用的好好的虚拟机,突然在更新了win10某个版本之后,极其卡顿,于是,百度之,说是win10防火墙阻挡了VMware上网导致的卡顿,按照提示操作在防火墙设置里 允许应用或功能通过windows defense防火墙-->更改设置-->允许其他应用 里找到VMware.exe添加进去,然后重启。重启之后,果然虚拟机不卡了,vs code连之,提示无法连接,retry,还是无法连接,再try,依然无法连接,WTF!开始还以为vscode老毛病烦了,跑到虚拟机上,删除了vscode的依赖,重新原创 2020-07-09 14:52:33 · 239 阅读 · 0 评论 -
CENTOS 增加node npm安装环境变量
1.找到node的安装路径2.将node路径下的bin和node_modules目录添加到环境变量 (1)打开/etc/profile在文末增加NODE_HOME相关路径 for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do if [ -r "$i" ]; then if [ "${-#*i}" != "$-" ]; then . "$i" ...原创 2020-06-18 11:47:40 · 1282 阅读 · 0 评论 -
解决centos "g++: Command not found"报错问题
在centos编译C++代码时,如果有如下提示:Invoking: GCC C++ Compilerg++ -std=c++1y -fpermissive -Iusr/local/include/zlib/include/ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"Epoll.d" -MT"Epoll.o" -o "Epoll.o" ...原创 2020-02-26 15:13:40 · 2515 阅读 · 0 评论 -
centos挂载硬盘
1:查看服务器上未挂载的磁盘(磁盘有普通磁盘,高效磁盘,SSD磁盘);命令如下:fdisk -l从上图可以看出,服务器的 /dev/vdb 42.9GB 此磁盘未挂载;如果此磁盘未挂载最下面会出一类似的话:Disk /dev/sdc doesn't contain a valid partition table;或者说磁盘下面没有类似于:sdb1 sdb2.........转载 2019-09-27 17:39:55 · 163 阅读 · 1 评论 -
linux创建服务和开启自启动服务
1.创建服务在/usr/lib/systemd/system 目录下创建对应服务的service文件,即可运行对应的服务。cd /usr/lib/systemd/systemvi HelloWorld.service然后在HelloWorld.service输入以下内容:[Unit]Description=HelloWorld[Service]Type=simpl...原创 2019-09-20 15:13:00 · 3531 阅读 · 0 评论 -
[转载]linux 执行远程linux上的shell脚本或者命令以及scp 上传文件到ftp--免密码登陆
前言我在工作中经常要将一些文件传输到另外一个服务器上,而且都是Linux的命令行环境,那么对于我来讲scp就是最直接有效的方法了,其他诸如FTP、SMB以及Winscp这些有界面的文件传输工具到反而有些多余了。使用过scp的都知道需要指定远端服务器的帐号并手动输入密码,那么如何避免每次都需要输入密码这个操作呢?下面就给出两种方案进行解决。方法一:建立SSH的信任关系在这里先介绍两个概念...转载 2019-09-18 19:54:41 · 243 阅读 · 0 评论 -
linux远程拷贝
作用:从服务器A将文件(文件夹)拷贝到服务器B前置需求:A能登陆到B命令:scp 带完整路径的文件 登陆服务器B的用户名@服务器B的IP:存放文件路径 # 拷贝文件 scp -r 带完整路径的文件夹登陆服务器B的用户名@服务器B的IP:存放文件夹路径 # 拷贝文件夹...原创 2019-09-10 18:07:30 · 108 阅读 · 0 评论 -
远程登陆centos服务器
ssh登陆如果本地端是Linuxssh root@192.168.1.1带端口的登陆ssh -p端口号 root@192.168.1.1# 其中root表示的是登录用户名,192.168.1.1为主机的IP地址,当然也可以使用主机名、域名来指代IP地址。# ssh 192.168.1.1则会以当前客户端的用户名进行登录。ssh无密码登录但是每次输入密...原创 2019-09-12 17:29:39 · 1247 阅读 · 0 评论 -
centos常用操作【持续更新】
1.去掉行尾的^M第一种方法:cat -A filename就可以看到windows下的断元字符 ^M要去除他,最简单用下面的命令:dos2unix filename第二种方法: 1 2 sed -i ‘s/^M//g' filename #注意:^M的输入方式是 Ctrl + v ,然后Ctrl + M 第三种方法...转载 2019-03-08 11:29:05 · 259 阅读 · 0 评论 -
centos安装clang
1)下载llvm的源代码 1 2 3 wget -c http://llvm.org/releases/3.5.0/llvm-3.5.0.src.tar.xz tar llvm-3.5.0.src.tar.xz mv llvm-3.5.0.src llvm 2)下载clang的源代码,然后配置工具 1...转载 2018-11-12 19:08:23 · 7642 阅读 · 0 评论 -
Centos 安装zlib
zlib 适用于数据压缩的函式库,由Jean-loup Gailly (负责compression)和 Mark Adler (负责decompression)开发。 zlib被设计成一个免费的、通用的、法律上不受阻碍(即没有被任何专利覆盖) 的无损数据压缩库。zlib几乎适用于任何计算器硬件和操作系统。 zlib本身的数据格式可以进行跨平台的移植。 与在Unix上适用的LZW压缩方...转载 2018-10-17 18:35:29 · 34019 阅读 · 1 评论 -
ubuntu 启动sshd失败,报错:Failed to start OpenBSD Secure Shell server
输入sshd -T会提示你错误的原因,我的错误原因是openssl版本问题。sshd: /lib/x86_64-linux-gnu/libcrypto.so.1.0.0: version `OPENSSL_1.0.0' not found (required by sshd)原创 2020-02-25 13:39:39 · 29387 阅读 · 0 评论 -
ubuntu卸载安装curl
1.卸载apt-get remove curl2.从网上下载指定版本的curlwget https://curl.haxx.se/download/curl-7.29.0.tar.gz3.解压tar -zxvf curl-7.29.0.tar.gz4.安装(make加 -j4 的意思就是4线程编译。如果你有4核,就会占满,导致CPU打满)1 cd curl-7....原创 2020-02-25 11:23:55 · 9782 阅读 · 0 评论 -
在 Linux Ubuntu 18.04 上安装/升级 OpenSSL
1.下载OpenSSL安装包(以当前最新版本为例,具体请到官网下载指定版本):sudo wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz2.解压缩sudotar -zxf openssl-1.0.2k.tar.gz && cd openssl-1.0.2k3.执行 make 进行编译...原创 2020-02-24 19:00:53 · 1457 阅读 · 0 评论 -
ubuntu安装boost
https://blog.csdn.net/huigougou/article/details/84351578转载 2020-02-24 18:06:47 · 100 阅读 · 0 评论 -
在 Ubuntu 上安装 Protobuf 3
依次执行下列命令:sudo apt-get install autoconf automake libtool curl make g++ unzipgit clone https://github.com/google/protobuf.gitcd protobufgit submodule update --init --recursive./autogen.sh./c...原创 2020-02-12 23:20:35 · 701 阅读 · 0 评论 -
linux shell 字符串操作(长度,查找,替换)详解
在做shell批处理程序时候,经常会涉及到字符串相关操作。有很多命令语句,如:awk,sed都可以做字符串各种操作。 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略启动外部程序等时间,因此速度会非常的快。一、判断读取字符串值表达式 含义 ${var} 变量var的值, 与$var相同 ${var-DEFAULT} 如果var没有被声明, 那么就以$DEFAULT作为其值 * ${var:-DEFAULT} ...转载 2020-12-22 17:19:14 · 99 阅读 · 0 评论 -
【shell】文件内容替换(变量表达式)
使用基本命令 sedUsage: sed [OPTION]... {script-only-if-no-other-script} [input-file]... -n, --quiet, --silent suppress automatic printing of pattern space -e script, --expression=script add the script to the commands to原创 2020-12-02 11:45:10 · 1809 阅读 · 0 评论 -
【openresty】API disabled in the context of init_worker_by_lua
在调用init.lua初始化的过程中,我调用了mysql数据库接口初始化数据,然后就提示了此错误:2020/06/28 19:56:40 [error] 24673#24673: *7 [lua] init.lua:2: init , context: init_worker_by_lua*2020/06/28 19:56:40 [error] 24673#24673: *7 [lua] data.lua:11: load(): context: init_worker_by_lua*2020/0原创 2020-06-28 20:22:18 · 5005 阅读 · 0 评论 -
数据库执行source报错:mysql ERROR 1064(42000)
项目线上服务器用的数据库是腾讯云的mysql数据库,每次更新服务器数据库脚本的流程,都是将测试服已经验证OK的脚本用heidisql工具导出来然后转到正式服环境执行,前期需要更新的数据库少,在heidisql工具里手动执行下,还OK,等到中后期,需要更新的数据库有20+,50+,100+。。。。哪效率就直线下降。所以就改成了用mysql的source命令执行,格式大致如下:mysql -h $hostname -P$port -u$user -p$pwd $dbname --default-char原创 2020-06-15 12:44:42 · 4037 阅读 · 0 评论 -
【linux + mysql】使用shell多数据库批量执行sql脚本
1.准备工作:linux服务器安装mysql数据库(或者直接拷贝一份mysql可执行文件到服务器的/usr/bin/目录也也可以)2.shell脚本编写如下:#!/bin/bashbegins=$1 # 参数1 起始IDends=$2 # 参数2 结束IDsqlfile=$3 # 参数3 执行SQL文件名hostname=...原创 2020-04-20 15:22:12 · 2163 阅读 · 0 评论 -
【rsyslog】linux简单开启rsyslog自定义日志记录(C,C++)
功能目标需求:记录应用的日志到指定的目录文件开发:1.配置:rsyslog配置增加自定义的日志路径,rsyslog的配置文件为rsyslog.conf,一般在/etc目录下,vi打开后增加配置local2.* /root/logs/log1.loglocal3.* ...原创 2020-03-26 14:30:02 · 3969 阅读 · 1 评论 -
fatal error: openssl/opensslv.h: No such file or directory
Ubuntusudo apt-get install libssl-dev Centossudo yum install openssl-devel原创 2020-02-26 15:41:43 · 626 阅读 · 0 评论 -
linux find 与 ls组合
find / -name libcurl.a -exec ls -l --time-style='+%Y-%m-%d' {} \;原创 2020-02-25 12:17:41 · 2004 阅读 · 0 评论 -
Ubuntu 安装Openssl
方法一sudo apt-get install opensslsudo apt-get install libssl-dev方法二到openssl官网下载压缩包http://www.openssl.org/source/我这里下载的是openssl-1.1.1a.tar.gz我用的是root用户登录,所以以下命令都省去了sudo,如果不是用root用户登录,请自行加上...转载 2020-02-12 13:00:35 · 560 阅读 · 0 评论 -
/usr/bin/ld: cannot find -l**** 问题的解决办法
ubuntu上安装软件时,遇到问题:/usr/bin/ld: cannot find -l****例如:/usr/bin/ld: cannot find -lgfortran/usr/bin/ld: cannot find -lstdc++……分两种情况:1.相应包未下载如:报错查找libshp.so*,未果locate libshp.s...转载 2020-02-12 12:35:44 · 5862 阅读 · 0 评论 -
LINUX实现定时删除过期文件
思考点:要实现定时操作,可以使用crontab来实现周期调用shell,删除过期文件就是要找出过期文件,再将起删除,shell命令find有根据文件状态改变时间来按范围查找:注意时间范围参数n的意义比较特别-n表示未来的n*24小时之后,比如改了系统时间之后,文件时间比现在时间大 类似:x >= y + 24 * nn表示之前的n*24小时到之前的(n+1)*24小时之间一天的时...原创 2019-10-29 17:45:11 · 1083 阅读 · 0 评论 -
LINUX命令之crontab
一、crond简介crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。Linux下的任务调度分为两类,系统任务调度和用户任务调度。系统任务调度:系统周期性所要执行...转载 2019-10-29 17:21:40 · 88 阅读 · 0 评论