Other

Linux下载安装部署Redis

下载Redis Redis版本 5.0.4 服务器版本 Linux CentOS 7.6 64位 官网下载地址:https://redis.io/download/ 中文网下载地址:http://www.redis.cn/download.html 上传并解压并安装Redis 解压 下载完成后需要将压缩文件解压,输入以下命令解压到当前目录 tar -zvxf redis-5.0.4.tar.gz 移动redis目录 一般都会将redis目录放置到 /usr/local/redis目录,所以这里输入下面命令将目前在/root目录下的redis-5.0.4文件夹更改目录,同时更改文件夹名称为redis。 mv /root/redis-5.0.4 /usr/local/redis cd到/usr/local/redis目录,输入命令make执行编译命令,接下来控制台会输出各种编译过程中输出的内容 make 结果报错了: 因为下载下来的Redis是C语言的源码,不能直接运行,所以要make,所报的错应该是没有gcc环境, 安装 gcc 环境,它是Linux下一个编译器集合 yum install gcc-c++ 中间遇到要输入的,一路yes就可以了 安装后,可以使用 gcc –v 查看gcc版本检测是否安装好。 执行 make 命令,它会去远程服务器下载所有需要的文件并配置上,因此该操作需要一点时间,稍等一会儿。 结果还是不尽人意,还是报错了: 针对这个错误,我们可以在README.md 文件中看到解释。 --------- Selecting a non-default memory allocator when building Redis is done by setting the `MALLOC` environment variable. Redis is compiled and linked against libc malloc by default, with the exception of jemalloc being the default on Linux systems.

云服务器 挖矿病毒crypto scan 针对docker2375监听以及redis弱密码的漏洞被挖矿

云服务器 挖矿病毒crypto scan 针对docker2375监听以及redis弱密码的漏洞被挖矿 目录云服务器 挖矿病毒crypto scan 针对docker2375监听以及redis弱密码的漏洞被挖矿解决方案搜索进程(htop)查看用户组以及crontab删除用户组以及crontab相关删除masscan删除/etc/.httpd/…/*以及/var/.httpd/…/* 以及/etc/newinit.sh等相关文件删除相关进程检查authorized_keys是否异常并做删除最后 解决方案 搜索进程(htop) 看cpu占用最高的进程(通常是ddns crypto 以及scan等),顺着找到相关文件所在,基于docker以及redis漏洞的病毒名称为crypto以及scan,通常存放于/usr/share目录下,顺着相关文件直接删除(最好能在删除之前看一下运行的脚本,以防删除的不干净) rm -rf /usr/share/*crypto* rm -rf /usr/share/*scan* 查看用户组以及crontab 通常挖矿病毒会使用一个新的用户进行部分操作,我的服务器被新注册了一个名为lsb的用户,同时需要查看脚本是否新增了其他守护进程 cat /etc/passwd cat /etc/group crontab -l 删除用户组以及crontab相关 我服务器中的病毒脚本编写者比较厉害,给绝大多数文件以及可执行命令都用chattr进行了隐藏权限的添加,添加后直接删除了chattr这个命令,并且破坏了apt安装的逻辑,导致要使用chattr需要安装e2fsprogs,但是e2fsprogs的安装必须修复apt,修复apt则必须修改用户组,但是用户组已经被添加权限无法操作(哪怕是root用户也不行),但是修改用户组又必须使用chattr去掉隐藏权限的逻辑闭环 这个闭环的解决方案是从其他任何一个正常的机器中从usr/bin/路径下面复制出chattr可执行文件,并拷贝入服务器中,使用chmod 777 /path/to/your/chattr修改文件属性,并使用这个可执行文件去进行操作,最好是直接采用chattr -Riae /path/to/lockedfiles这种递归的方式直接一次性去除某个文件夹下的所有被加了权限的目录以及可执行文件(以root用户执行任何常用命令但是显示operation not permitted都可以用这个方式解决) 最后使用userdel xxx以及crontab -e删除相关被病毒脚本添加的内容,注意光删除用户是不够的,用户目录仍然会保留,所以需要手动删除/home/xxx这个目录. 以root用户执行cat /etc/passwd | cut -f 1 -d : |xargs -I {} crontab -l -u {}来查看其他用户下面是否还有其他的crontab进程 删除masscan 病毒脚本会安装masscan(可能你的机器已经安装过)并使用他来对其他公网ip进行扫描(也就是让你的服务器变成了中转站) 因为部分病毒文件删除过早,我没有找到相关的masscan配置文件,但是可以确认的是不删除/usr/bin/masscan或者masscan的配置文件,你的机器就会一直被作用于扫描其他人的服务器的端口,因此我直接选择了删除masscan 删除/etc/.httpd/…/*以及/var/.httpd/…/* 以及/etc/newinit.sh等相关文件 使用rm -rf命令进行删除 注意以/etc/new*命名的有好几个是病毒脚本相关文件,但是也不全是,注意区分删除 删除相关进程 通常包括systemd-journal以及/bin/bash /etc/.httpd/...和/var/.httpd/…等 ps:本人在做到这一步的时候哪怕删除了上述后两个进程也会自动再起来,但是crontab又已经确认删干净了,之后不知道又做了什么操作这两个进程就不会再打开了

使用Docker部署MySQL作为测试环境

使用Docker部署MySQL作为测试环境 这里说明了作为测试环境,生产环境下不建议将MySQL使用Docker部署 查找镜像 root@centos7-docker opt]# docker search mysql NAME DESCRIPTION STARS OFFICIAL AUTOMATED mysql MySQL is a widely used, open-source relation… 12527 [OK] mariadb MariaDB Server is a high performing open sou… 4819 [OK] percona Percona Server is a fork of the MySQL relati… 575 [OK] phpmyadmin phpMyAdmin - A web interface for MySQL and M… 527 [OK] bitnami/mysql Bitnami MySQL Docker Image 70 [OK] linuxserver/mysql-workbench 36 linuxserver/mysql A Mysql container, brought to you by LinuxSe… 35 ubuntu/mysql MySQL open source fast, stable, multi-thread… 31 circleci/mysql MySQL is a widely used, open-source relation… 25 google/mysql MySQL server for Google Compute Engine 21 [OK] vmware/harbor-db Mysql container for Harbor 10 bitnami/mysqld-exporter 3 ibmcom/mysql-s390x Docker image for mysql-s390x 2 newrelic/mysql-plugin New Relic Plugin for monitoring MySQL databa… 1 [OK] vitess/mysqlctld vitess/mysqlctld 1 [OK] nasqueron/mysql 1 [OK] cimg/mysql 0 silintl/mysql-backup-restore Simple docker image to perform mysql backups… 0 [OK] drud/mysql-local-57 ddev mysql local container 0 drud/mysql 0 drud/mysql-docker-local-57 This repo has been deprecated, new tags are … 0 drud/mysql-docker-local docker containers for local womysql rk 0 [OK] docksal/mysql MySQL service images for Docksal - https://d… 0 mirantis/mysql 0 drud/mysqld-exporter 0 建立目录映射 mkdir -p /opt/docker/mysql mkdir -p /opt/docker/mysql/logs mkdir -p /opt/docker/mysql/data 运行 docker run -p 3306:3306 --name zsdmysql02 \ -v /opt/docker/mysql/conf:/etc/mysql \ -v /opt/docker/mysql/logs:/var/log/mysql \ -v /opt/docker/mysql/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ -d mysql 查看看数据目录映射为主机的目录

【转】Linux系统产生随机数的6种方法

1、通过系统环境变量($RANDOM)产生随机数 [root@localhost ~]# echo $RANDOM 3849 [root@localhost ~]# echo $RANDOM 14931 [root@localhost ~]# echo $RANDOM 12488 [root@localhost ~]# echo $RANDOM |md5sum |cut -c 1-8 #获取8位随机字符 2e45f930 [root@localhost ~]# echo $RANDOM |cksum |cut -c 1-8 #获取8位随机数字 44020023  2、通过openssl产生随机数 openssl rand 用于产生指定长度个bytes的随机字符 -base64 / -hex 对随机字符串进行base64编码或用hex格式显示 [root@localhost ~]# openssl rand -base64 10 yNop46cVrQxNIQ== [root@localhost ~]# openssl rand -base64 8 pB492c604MI= [root@localhost ~]# openssl rand -base64 5 gAqEI9c= [root@localhost ~]# openssl rand -base64 6 #获取8位随机字符

Nginx rewrite模块

介绍 Nginx的rewrite模块即ngx_http_rewrite_module标准模块,主要功能是重写请求URI,也是Nginx默认安装的模块。rewrite模块会根据PCRE正则匹配重写URI,然后根据指令参数或者发起内部跳转再一次进行location匹配,或者直接进行30x重定向返回客户端。 rewrite模块的指令就是一门微型的编程语言,包含set、rewrite、break、if、return等一系列指令。 set指令 set指令是由ngx_http_rewrite_module标准模块提供的,用于向变量存放值。在Nginx配置文件中,变量只能存放一种类型的值,因为只存在一种类型的值,那就是字符串。 set指令的配置项格式如下: set $variable value; 注意:在Nginx配置文件中,变量定义和使用都要以$开头。Nginx变量名前面有一个$符号,这是记法上的要求。所有的Nginx变量在引用时必须带上$前缀。另外,Nginx变量不能与Nginx服务器预设的全局变量同名。比如,我们的nginx.conf文件中有下面这一行配置: set $a hello world; 上面的语句中,set配置指令对变量$a进行了赋值操作,把字符串hello world赋给了它。也可以直接把变量嵌入字符串常量中以构造出新的字符串: set $a foo; set $b $a, $a; 这个例子通过前面定义的变量$a的值来构造变量$b的值,于是这两条指令顺序执行完之后,$a的值是foo,而$b的值则是foo,foo。把变量嵌入字符串常量中以构造出新的字符串,这种技术在Linux Shell脚本中常常用到,并且被称为“变量插值”(VariableInterpolation) set指令不仅有赋值的功能,还有创建Nginx变量的副作用,即当作为赋值对象的变量尚不存在时,它会自动创建该变量。比如在上面这个例子中,若$a这个变量尚未创建,则set指令会自动创建$a这个用户变量。 Nginx变量一旦创建,其变量名的可见范围就是整个Nginx配置,甚至可以跨越不同虚拟主机的server配置块。但是,对于每个请求,所有变量都有一份独立的副本,或者说都有各变量用来存放值的容器的独立副本,彼此互不干扰。Nginx变量的生命期是不可能跨越请求边界的。 rewrite指令 rewrite指令是由ngx_http_rewrite_module标准模块提供的,主要功能是改写请求URI。rewrite指令的格式如下: rewrite regrex replacement [flag]; 如果regrex匹配URI,URI就会被替换成replacement的计算结果,replacement一般是一个“变量插值”表达式,其计算之后的字符串就是新的URI。 下面的例子有两个重新配置项,具体如下: location /download/ { rewrite ^/download/(.*)/video/(.*)$ /view/$1/mp3/$2.mp3 last; rewrite ^/download/(.*)/audio/(.*)*$ /view/$1/mp3/$2.rmvb last; return 404; } location /view { echo uri: $uri ; } 在这个演示例子中,replacement中的占位变量$1、$2的值是指令参数regrex正则表达式从原始URI中匹配出来的子字符串,也叫正则捕获组,编号从1开始。 rewrite指令可以使用的上下文为:server、location、if inlocation。 如果rewrite同一个上下文中有多个这样的rewrite重新指令,匹配就会依照rewrite指令出现的顺序先后依次进行下去,匹配成功之后并不会终止,而是继续往下匹配,直到返回最后一个匹配的为止。如果想要中途中止,不再继续往下匹配,可以使用第3个指令参数flag。flag参数的值有last、break、redirect、permanent。 如果flag参数使用last值,并且匹配成功,那么停止处理任何rewrite相关的指令,立即用计算后的新URI开始下一轮的location匹配和跳转。前面的例子使用的就是last参数值。 如果flag参数使用break值,就如同break指令的字面意思一样,停止处理任何rewrite的相关指令,但是不进行location跳转。 将上面的rewrite例子中的last参数值改成break,代码如下: location /view { echo view : $uri ; } location /download_break/ { rewrite ^/download_break/(.

jmeter-BeanShell

参考链接:https://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterContext.html  添加变量到jmeter String n=hqj;vars.put(n,n); 获取jmeter变量 String n =vars.get(n);  接口响应信息 String str=prev.getResponseDataAsString();     String iresponse = new String(ResponseData,UTF-8);//中文乱码处理log.info(请求头:+ResponseHeaders);log.info(请求url+参数:+SamplerData);log.info(响应码:+ResponseCode);log.info(响应信息+iresponse);

Windows 安装pdf2image运行后遇到PDFInfoNotInstalledError解决办法

最近在学习图像处理,需要安装pdf2image,安装没有报错,运行之后报错: pdf2image.exceptions.PDFInfoNotInstalledError: Unable to get page count. Is poppler installed and in PATH? 一开始是想直接安装PDFInfo,或者poppler,但是都安装失败。按照网友提示安装python-poppler也因为ndk版本不对失败。 最终解决办法:首先通过poppler-windows下载地址下载压缩包 然后解压到自定义文件目录,随后添加到环境变量。 最后就是更改安装包内的pdf2image.py中的poppler路径 def convert_from_path( pdf_path, dpi=200, output_folder=None, first_page=None, last_page=None, fmt=ppm, jpegopt=None, thread_count=1, userpw=None, use_cropbox=False, strict=False, transparent=False, single_file=False, output_file=uuid_generator(), poppler_path=r'D:\poppler-0.68.0\bin', #将这里改为你解压安装的poppler路径 grayscale=False, size=None, paths_only=False, use_pdftocairo=False, timeout=None,以上。 ————————————————版权声明:本文为CSDN博主「ccccccblock」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/ccccccblock/article/details/115764854

dbdeployer 快速部署mysql

$ curl -s https://raw.githubusercontent.com/datacharmer/dbdeployer/master/scripts/dbdeployer-install.sh | bash $ yun install base_completion $ dbdeployer init SANDBOX_BINARY /root/opt/mysql SANDBOX_HOME /root/sandboxes -------------------------------------------------------------------------------- Directory /root/opt/mysql ($SANDBOX_BINARY) already exists This directory is the destination for expanded tarballs -------------------------------------------------------------------------------- Directory /root/sandboxes ($SANDBOX_HOME) already exists This directory is the destination for deployed sandboxes -------------------------------------------------------------------------------- # dbdeployer defaults enable-bash-completion --run-it --remote Error: none of bash completion scripts found ([/etc/bash_completion /usr/local/etc/bash_completion /etc/profile.d/bash_completion.sh]) Usage: dbdeployer init [flags] Flags: --dry-run Show operations but don't run them -h, --help help for init --skip-all-downloads Do not download any file (skip both MySQL tarball and shell completion file) --skip-shell-completion Do not download shell completion file --skip-tarball-download Do not download MySQL tarball Global Flags: --config string configuration file (default /root/.