Year: 2020
-

-

-
如何在mac上运行windows?安装Parallels Desktop常见问题解答
官网地址:https://www.parallels.cn/pd/windows-on-mac/?gclid=EAIaIQobChMI3s65mb307QIVQUeWCh0RUQ6yEAEYASAAEgJlufD_BwE Parallels Desktop 怎样工作? 要将 Windows、Linux 或其他操作系统添加到您的 Mac,Parallels Desktop 会在您的 Mac 内创建一个虚拟机 (VM) 或当前 Windows PC 的一个虚拟副本。然后,您可以在虚拟机中安装 Windows,就像在常规计算机上安装任意操作系统一样。在 Mac 上可以同时运行多个操作系统。就像两台电脑合二为一! 我可以使用 Parallels Desktop 做什么? 无需重启 Mac,即可同时打开 Windows 应用程序和 macOS 应用程序 在 Mac 与 Windows 之间复制和粘贴文本或拖放对象 运行 Windows 游戏和其他 3D 应用程序。 从 PC 迁移所有数据并在 Mac 中使用。 轻松地在 Windows 与 Mac 之间共享文件、设备以及其他资源。 安装其他操作系统(例如 Windows 试用版、Linux、macOS 其他副本以及免费的虚拟设备),并一同使用它们。 还可以执行更多操作。…
-

Discuz如何禁止匿名发帖?
如果存在匿名发帖,说明你的设置还是有不到位的地方,跟我做,没错! 一、后台禁止匿名发帖相关的权限设置方法: 1、在后台找到“板块”下的“版块管理”,编辑所有板块,在“帖子选项”下找到“允许匿名发帖”选项选中“否”保存即可。 2、切换到“用户”菜单,选中左侧“用户组”,点击对应用户组后面的编辑,在“论坛相关”下找到“帖子相关”然后在“允许匿名发帖”选项选中“否”保存即可,如果更改全部用户组,我们可以使用批量编辑功能设置禁止匿名发帖 二、匿名发帖漏洞的原因,如果站长没有将Discuz升级到最新版本。攻击者可以利用匿名发帖漏洞绕过权限发布匿名发帖,因为默认DiscuzX程序是这样判断的:如果没有这个会员,或者会员主动选择匿名,都显示为匿名。 三、漏洞修复方法:在source/module/forum/forum_post.php文件的85行添加判断即:凡是没有uid的帖子,一律禁止发帖,添加以下代码然后,保存文件,在后台更新缓存即可 if(!$_G[‘uid’]) { showmessage(‘您这个畜生,禁止匿名发帖!’); }
-
Ubuntu18.04下ssh登录增加自定义欢迎信息
增加额外的自定义欢迎信息: $ sudo sh -c ‘echo “Welcome Ubuntu User” > /etc/motd’ 如果想修改原来的欢迎信息,找到目录: /etc/update-motd.d directory. 有很多脚本: $ ls /etc/update-motd.d/ 00-header 50-landscape-sysinfo 80-esm 90-updates-available 95-hwe-eol 98-fsck-at-reboot 10-help-text 50-motd-news 80-livepatch 91-release-upgrade 97-overlayroot 98-reboot-required 自己改就可以了。如果想删某一条,就去掉x属性。 $ sudo chmod -x /etc/update-motd.d/* Install prerequisites 安装一个花哨的欢迎信息: $ sudo apt install inxi screenfetch ansiweather 创建一个脚本: /etc/update-motd.d/01-custom 内容如下: #!/bin/sh echo “GENERAL SYSTEM INFORMATION” /usr/bin/screenfetch echo echo “SYSTEM…
-
如何修改ubuntu18默认Nano编辑器为vi
利用自带的工具update-alternatives –config # update-alternatives –config editor There are 4 choices for the alternative editor (providing /usr/bin/editor). Selection Path Priority Status ———————————————————— 0 /bin/nano 40 auto mode 1 /bin/ed -100 manual mode 2 /bin/nano 40 manual mode * 3 /usr/bin/vim.basic 30 manual mode 4 /usr/bin/vim.tiny 15 manual mode Press <enter> to keep the current choice[*], or…
-

gitlab 出現 cannot unblock ldap blocked users 问题解决办法
执行: gitlab-rails console 再输入命令: user = User.find_by_email(“admin@moneyslow.com”) user.state = “active” user.save exit
-

Centos7.6下docker安装sonarqube7.6加postgres:9.6实现代码安全扫描检测
代码安全检查的流程: 环境需求: https://docs.sonarqube.org/7.6/requirements/requirements/ Linux If you’re running on Linux, you must ensure that: vm.max_map_count is greater or equals to 262144 fs.file-max is greater or equals to 65536 the user running SonarQube can open at least 65536 file descriptors the user running SonarQube can open at least 2048 threads You can see the values with the…
-
执行umount 的时候却提示:device is busy 的处理方法
卸载挂载的盘提示如下: [root@moneyslow.com yum.repos.d]# umount /mnt/cdrom/ umount: /mnt/cdrom: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1)) [root@moneyslow.com yum.repos.d]# umount /mnt/cdrom/ -f //强制卸载也不行 umount2: 设备或资源忙 umount: /mnt/cdrom: device is busy. (In some cases useful info about processes that use the device is found by lsof(8)…
-

-

如何查看机动车检验标志电子凭证?如何查看年检时间?
如果您已注册交管12123APP并成功备案机动车,可点击APP左上角“机动车”,在车辆详情页面点击“展开更多”——点击“检验标志电子凭证”进行查看。
-

nvm命令安裝切换不同node.js版本的管理器
目錄 安裝 NVM –version:確認 NVM 是否安裝成功 install:利用 NVM 安裝 Node.js ls-remote:察看可用的安裝版本 ls:查看目前安裝了哪些版本 use:切換 Node.js 版本 current:察看目前使用版本 run:直接執行 Node.js exec:指定要執行的 Node.js 版本 which:察看 Node.js 的安裝路徑 alias alias:察看別名、設定別名 察看別名 設定別名 資料來源 nvm 是 Node.js 的版本管理器 (version manager),可在同一台主機上安裝多個版本的 Node.js 環境,因為不同專案可能會使用不同的 Node.js 版本,那就需要透過一個版本管理器來切換不同的 Node.js 版本。 安裝 NVM 可用 cURL 或 wget 指令使用安裝腳本安裝或更新 nvm: 1 $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash 或 1 $…
-

安装luminati的nodejs环境配置
安装文档:https://luminati-china.biz/products/proxy-manager 选择bash安装方法执行:curl -L https://luminati-china.biz/static/lpm/luminati-proxy-latest-setup.sh | bash 会自动检测nodejs的版本和npm命令的版本,一般默认在centos下npm的命令版本是很低的。luminati要求6.14.6 以上。 如果出现找不到/usr/bin/npm 的报错,要手工安装nodejs的新版本和npm的新版本。命令如下: 1. First, update the local repository to ensure you install the latest versions of Node.js and npm. Type in the following command: sudo yum update 2. Next, add the NodeSource repository to the system with: curl –sL https://rpm.nodesource.com/setup_10.x | sudo bash – 3. The output…
-

/usr/bin/npm: No such file or directory 报错提示解决办法
问题:明明有nodejs,但是npm命令找不到。 正常来说,安装nodejs的同时会安装npm,只需要yum install -y nodejs即可。测试安装成功则使用node -v以及npm -v。 当使用npm -v进行测试时,却出现如下错误提示:-bash: /usr/local/bin/npm: No such file or directory 尝试使用yum的重装修复yum reinstall -y nodejs,发现问题依旧。 尝试使用yum先擦除,然后安装的方式修复,yum erase nodejs,然后安装yum install -y nodejs。问题解决。 一般来说完全擦除后新装,是修复yum源安装的可靠办法。
-

2020最新判定原生IP方法及隐藏真实IP地址的3个CHROME浏览器插件
互联网比较复杂,通过各种代理可以访问网站。但是网站也有手段查看你是何方神圣,尤其是注重安全的科技互联网公司,他们要保护用户的隐私安全,确保资金安全,把攻击者和黑客挡在门外。如果是你是正常正规用途,可以了解本文所阐述的知识。 1、第一种方法通过bgp.he.net ,如下图,点击箭头所指的ip地址: 这里看到我所在的地址HK,如何和上图中的3个国旗都对上号,基本就是原生ip了。 2、第二种如何判断自己的ip是否原生的方法,访问whoer.net ,查看自己的ip地址的隐匿性。如下图: 得分63%,可以看到首先自己的浏览器没有勿追踪的设置,其次本机使用的dns和本机ip地址在不同的国家,最后就是你浏览器的语言不符合ip所在的国家。
-
汽车身份证VIN 码含义详解
1~3位(WMI):制造厂、品牌和类型 第2位:汽车制造商代码 第3位:汽车类型代码 4~8位(VDS):汽车特征 第9位:校验位 第10位:车型年款 第11位:装配厂 12~17位:顺序号 比亚迪 LC0CE4DC1L 关于汽车VIN码 VIN码是英文(Vehicle Identification Number)的缩写,译为车辆识别代码,又称车辆识别码,车辆识别代码,车辆识别号,车辆识别代号,VIN码是表明车辆身份的代码。VIN码由17位字符(包括英文字母和数字)组成,俗称十七位码。是制造厂为了识别而给一辆车指定的一组字码。该号码的生成有着特定的规律,对应于每一辆车,并能保证五十年内在全世界范围内不重复出现。因此又有人将其称为”汽车身份证”。车辆识别代号中含有车辆的制造厂家、生产年代、车型、车身型式、发动机以及其它装备的信息。 VIN代码的含义 1)第1~3位(WMI:世界制造厂识别代码):表示制造厂、品牌和类型。用来标识车辆制造厂的唯一性。通常占VIN代码的前三位; 第1位:是表示地理区域,如非洲、亚洲、欧洲、大洋州、北美洲和南美洲。 第2位:字符表示一个特定地区内的一个国家。美国汽车工程师协会(SAE) 负责分配国家代码。 第3位:字符表示某个特定的制造厂,由各国的授权机构负责分配。如果某制造厂的年产量少于500辆,其识别代码的第三个字码就是9。 2)第4~9位(VDS:车辆说明部分):说明车辆的一般特性,制造厂不用其中的一位或几位字符,就在该位置填入选定的字母或数字占位,其代号顺序由制造厂确定。 轿车:种类、系列、车身类型、发动机类型及约束系统类型; MPV:种类、系列、车身类型、发动机类型及车辆额定总重; 载货车:型号或种类、系列、底盘、驾驶室类型、发动机类型、制动系统及车辆额定总重; 客车:型号或种类、系列、车身类型、发动机类型及制动系统。 3)第10~17位(VIS:车辆指示部分):制造厂为了区别不同车辆而指定的一级字符,其最后四位应是数字。 第9位:校验位,通过一定的算法防止输入错误; 第10位:车型年份,即厂家规定的型年(Model Year),不一定是实际生产的年份,但一般与实际生产的年份之差不超过1年; 第11位:装配厂; 12~17位:顺序号,一般情况下,汽车召回都是针对某一顺序号范围内的车辆,即某一批次的车辆。 VIN码各位说明 一、第1~3位(WMI):制造厂、品牌和类型; 第1位:生产国家代码 1-美国、J-日本、S-英国 2-加拿大、K-韩国、T-瑞士 3-墨西哥、L-中国、V-法国 4-美国、R-台湾、W-德国 6-澳大利亚、Y-瑞典 9-巴西、Z-意大利 第2位:汽车制造商代码; 1-Chevrolet B-BMW M-Hyundai 2-Pontiac B-Dodge M-Mitsubishi 3-Oldsmobile C-Chrysler M-Mercury 4-Buick D-Mercedes N-Infiniti…
-

Linux的rename 命令用法(有两个版本一个是C语言版本的一个是Perl语言版本的)
早期的Linux发行版基本上使用的是C语言版本的,现在已经很难见到C语言版本的了, 由于历史原因,在Perl语言大红大紫的时候,Linux的工具开发者们信仰Perl能取代C,所以大部分工具原来是C版本的都被Perl改写了,因为 Perl版本的支持正则处理,所以功能更加强大,已经不再需要C语言版本的了。1。如何区分系统里的rename命令是哪个版本的?输入man rename 看到第一行是RENAME(1) Linux Programmer’s Manual RENAME(1)那么 这个就是C语言版本的。【我查看系统上应该就是C语言版本的】而如果出现的是:RENAME(1) Perl Programmers Reference Guide RENAME(1)这个就是Perl版本的了!两个版本的语法差异:C语言的,按照man上面的注解,rename的语法格式是:rename fromtofile这个命令有三个参数,分别是from : 修改什么名字,to:改成什么名字,file 需要修改的文件是哪些。用法示例:比如,有一批文件,都是以log开头的,log001.txt, log002.txt ……. 一直到log100.txt现在想要把这批文件的log全部替换为historyrename log history log*【C的用法~】这句命令的意思很明白了,把 以log开头的所有文件中的log字符替换为history这样替换后的文件是:history001.txt, history002.txt ….. 一直到history100.txtrename C语言版本的另一个man示例是把后缀名批量修改,比如我们要将所有jpeg的后缀名图片文件修改为jpg文件。rename .jpeg.jpg*.jpeg这样,所有以.jpeg扩展的后缀名全部被修改为.jpg现在总结一下:rename C语言版本所能实现的功能:批量修改文件名,结果是每个文件会被用相同的一个字符串替换掉!也就是说,无法实现诸如循环 然后按编号重命名!2。Perl 版本的批量重命名,带有Perl的好处是,你可以使用正则表达式来完成很奇特的功能。perl 版本的参数格式:rename perlexprfiles注意,perl版本的rename只有两个参数,第一个参数为perl正则表达式,第二个参数为所要处理的文件man rename的帮助示例:1) 有一批文件,以.bak结尾,现在想把这些.bak 统统去掉。rename ‘s/\.bak$//’ *.bak这个命令很简单,因为我还没有系统学习过perl,我不知道perl里替换字符串是不是这么干的,但sed是这么干的,所以如果你有sed或者tr基础,很容易明白,这个替换和sed里的正则语法是一模一样的。2) 把所有文件名内含有大小字母的,修改为小写字母。rename ‘y/A-Z/a-z/’ *依然和sed的替换语法一样,不用多解释,如果看不懂的话,可以系统学习一下sed先。还有几个比较实用的例子:1) 批量去掉文件名里的空格Linux文件名本来是不支持空格的,不知道什么时候允许了,当然,在命令行调用文件的时候,空格是很有问题滴,比如你 原来可以直接 mv oldfile newfile 但有空格就不行了 , 得加双引号:mv “oldfile” “newfile” 或者用反斜杠转移…
-

Docker常用命令 Docker基本命令
更新软件包 yum -y update 安装Docker虚拟机 yum install -y docker 运行、重启、关闭Docker虚拟机 service docker start service docker stop 搜索镜像 docker search 镜像名称 下载镜像 docker pull 镜像名称 查看镜像 docker images 删除镜像 docker rmi 镜像名称 运行容器 docker run 启动参数 镜像名称 查看容器列表 docker ps -a 停止、挂起、恢复容器 docker stop 容器ID docker pause 容器ID docker unpase 容器ID 查看容器信息 docker inspect 容器ID 删除容器…
-

Square的cash app 是如何慢慢赚钱的?
Cash App(前称Square Cash)是Square公司开发的移动支付服务,允许用户使用手机应用程序进行资金转账。截至2018年2月18日,该服务共拥有超过700万活跃用户。 2015年3月,Square公司为企业引入了Square Cash,其中包括个人、组织和企业所有者可以使用一个独特的用户名来发送和接收钱款,也就是所谓的$cashtag。2018年1月起,Cash App支持比特币交易。 这项服务允许用户通过其Cash App或电子邮件向另一个现金账户转账或发送收款请求。然后,用户可以选择在自动柜员机中使用其借记Visa卡(被称为Cash Card)提取资金,或将其转至任何地银行帐户。 Cash Card是一种可定制的黑色卡。用户需要在App上签署他们的名字,然后签名将被打印到卡中并发送给用户。 Cash App还推出了他们独特的用户名,称为$cashtag。它允许用户通过输入这样的用户名来转移资金和发送收款请求。 自2018年3月7日起,该App支持自动清算所系统直接存款。 由于其在金融技术不断增长的影响力,或者一部分fintech,行业,广场公司(NYSE:SQ)在2013年推出了一个对等网络(P2P)支付服务称为现金应用。P2P支付应用程序允许消费者支付商品和服务,支付账单,并将钱转移给朋友和家人,所有这一切都来自他们的智能手机。 现金应用程序是免费的,个人可以下载并用于发送,请求或接收资金,这让很多人想知道Square是如何从中赚钱的。答案是:通过使用该应用程序的企业的费用,以及选择使用其扩展服务的个人的小额费用。 看看现金应用程序的费用 Square通过收取使用其软件的商业交易费来从Cash App赚钱。该公司向接受现金应用程序付款的企业收取每笔交易2.75%的费用。 Square还通过使用该应用的个人赚钱。虽然个人可以免费使用现金应用程序将钱转移给朋友或企业,但他们可以选择使用其扩展功能获得额外费用。 对于1.5%的交易费用,个人用户可以加快存款,将其立即转入他们的银行账户,而不是等待标准存款时间。他们还可以通过信用卡发送个人付款,交易费用为3%。 现金应用程序如何运作? 个人和企业可以通过App Store或Google Play在Android和iOS设备上免费下载Cash App。在将借记卡链接到应用程序后,用户可以开始向应用程序的其他用户汇款并从中接收资金。 Square Cash与其竞争对手之间的主要区别之一就是Square Cash直接将钱转入和转出用户的借记卡账户,而不是通过服务提供商将现金存入账户。然而,当Square于2017年5月推出现金卡时,情况发生了变化。 现金卡是一张与用户的现金应用账户相关联的Visa卡。个人Squarespace用户可以使用免费卡,因为他们会使用借记卡向零售商支付现金应用程序中的钱。他们甚至可以在通过借记卡购买提供该服务的商店获得现金。在2019年1月,Square为名为Square Card的企业推出了类似的免费借记卡。 现金应用竞争对手 美国金融科技行业由PayPal Inc.(PYPL),PayPal旗下的Venmo,Facebook Inc.(FB),Alphabet Inc.(纳斯达克股票代码:GOOG),Apple Inc.(AAPL),Amazon.com Inc.(AMZN)主导。和Square,其中每个都在过去十年中推出了P2P支付服务。 Square已迅速发展成为美国最大的支付处理公司之一。自2015年11月首次公开募股以来,该公司已将其业务模式扩展到支付处理之外,包括日程安排,员工管理和业务分析。 该公司在2018年第三季度的收入为4.31亿美元,比去年同期的2.57亿美元增长了68%。Square并未报告其现金应用程序的单独收益,这意味着很难说该服务为该公司的季度收入贡献了多少钱。 然而,作为Square快速增长的业务的一个组成部分,Cash App已成为P2P支付生态系统的领导者。凭借累计下载量3350万次,Cash App首次超过Venmo,于2018年8月首次超过Venmo,在下载量方面排名第一。
-

CentOS7 解决TIME_WAIT过多的内核参数调整
默认情况下,我们会消除对操作系统施加的各种限制,以充分发挥硬件的性能。 主要的方法就是打开文件数的上限,启动进程数的上限,TCP/IP端口数的上限,促进TCP连接的重用,针对TCP欺诈的一些对策,以及通过禁用IPv6来提高资源效率等。 以下是具体方法,但是修改正式业务以前请务必进行彻底测试!!! 一、更改操作系统文件的最大数量和用户启动进程的最大数量 打开/etc/systemd/system.conf并更改以下内容 DefaultLimitNOFILE = 1048576 DefaultLimitNPROC = 1048576 二、打开/etc/sysctl.conf并更改以下内容 #kernel.threads-max = 29990 kernel.threads-max = 1060863 #fs.file-max = 379862 fs.file-max = 5242880 #net.ipv4.ip_local_port_range = 32768 60999 net.ipv4.ip_local_port_range = 1024 65535 #net.core.somaxconn = 128 net.core.somaxconn = 65535 #net.ipv4.tcp_max_syn_backlog = 128 net.ipv4.tcp_max_syn_backlog = 65535 #net.core.netdev_max_backlog = 1000 net.core.netdev_max_backlog = 16384 #net.ipv4.tcp_tw_reuse = 0 net.ipv4.tcp_tw_reuse =…
-

Redis讲故事学习教程
你好,我是Redis,一个叫Antirez的男人把我带到了这个世界上。 说起我的诞生,跟关系数据库MySQL还挺有渊源的。 在我还没来到这个世界上的时候,MySQL过的很辛苦,互联网发展的越来越快,它容纳的数据也越来越多,用户请求也随之暴涨,而每一个用户请求都变成了对它的一个又一个读写操作,MySQL是苦不堪言。尤其是到“双11”、“618“这种全民购物狂欢的日子,都是MySQL受苦受难的日子。据后来MySQL告诉我说,其实有一大半的用户请求都是读操作,而且经常都是重复查询一个东西,浪费它很多时间去进行磁盘I/O。后来有人就琢磨,是不是可以学学CPU,给数据库也加一个缓存呢?于是我就诞生了! 出生不久,我就和MySQL成为了好朋友,我们俩常常携手出现在后端服务器中。应用程序们从MySQL查询到的数据,在我这里登记一下,后面再需要用到的时候,就先找我要,我这里没有再找MySQL要。 为了方便使用,我支持好几种数据结构的存储: String Hash List Set SortedSet Bitmap ······ 因为我把登记的数据都记录在内存中,不用去执行慢如蜗牛的I/O操作,所以找我要比找MySQL要省去了不少的时间呢。可别小瞧这简单的一个改变,我可为MySQL减轻了不小的负担!随着程序的运行,我缓存的数据越来越多,有相当部分时间我都给它挡住了用户请求,这一下它可乐得清闲自在了!有了我的加入,网络服务的性能提升了不少,这都归功于我为数据库挨了不少枪子儿。 缓存过期 && 缓存淘汰 不过很快我发现事情不妙了,我缓存的数据都是在内存中,可是就算是在服务器上,内存的空间资源还是很有限的,不能无节制的这么存下去,我得想个办法,不然吃枣药丸。不久,我想到了一个办法:给缓存内容设置一个超时时间,具体设置多长交给应用程序们去设置,我要做的就是把过期了的内容从我里面删除掉,及时腾出空间就行了。 超时时间有了,我该在什么时候去干这个清理的活呢?最简单的就是定期删除,我决定100ms就做一次,一秒钟就是10次!我清理的时候也不能一口气把所有过期的都给删除掉,我这里面存了大量的数据,要全面扫一遍的话那不知道要花多久时间,会严重影响我接待新的客户请求的! 时间紧任务重,我只好随机选择一部分来清理,能缓解内存压力就行了。 就这样过了一段日子,我发现有些个键值运气比较好,每次都没有被我的随机算法选中,每次都能幸免于难,这可不行,这些长时间过期的数据一直霸占着不少的内存空间!气抖冷!我眼里可揉不得沙子!于是在原来定期删除的基础上,又加了一招: 那些原来逃脱我随机选择算法的键值,一旦遇到查询请求,被我发现已经超期了,那我就绝不客气,立即删除。这种方式因为是被动式触发的,不查询就不会发生,所以也叫惰性删除! 可是,还是有部分键值,既逃脱了我的随机选择算法,又一直没有被查询,导致它们一直逍遥法外!而于此同时,可以使用的内存空间却越来越少。 而且就算退一步讲,我能够把过期的数据都删除掉,那万一过期时间设置的很长,还没等到我去清理,内存就吃满了,一样要吃枣药丸,所以我还得想个办法。 我苦思良久,终于憋出了个大招:内存淘汰策略,这一次我要彻底解决问题! 我提供了8种策略供应用程序选择,用于我遇到内存不足时该如何决策: noeviction:返回错误,不会删除任何键值 allkeys-lru:使用LRU算法删除最近最少使用的键值 volatile-lru:使用LRU算法从设置了过期时间的键集合中删除最近最少使用的键值 allkeys-random:从所有key随机删除 volatile-random:从设置了过期时间的键的集合中随机删除 volatile-ttl:从设置了过期时间的键中删除剩余时间最短的键 volatile-lfu:从配置了过期时间的键中删除使用频率最少的键 allkeys-lfu:从所有键中删除使用频率最少的键 有了上面几套组合拳,我再也不用担心过期数据多了把空间撑满的问题了~ 缓存穿透 && 布隆过滤器 我的日子过的还挺舒坦,不过MySQL大哥就没我这么舒坦了,有时候遇到些烦人的请求,查询的数据不存在,MySQL就要白忙活一场!不仅如此,因为不存在,我也没法缓存啊,导致同样的请求来了每次都要去让MySQL白忙活一场。我作为缓存的价值就没得到体现啦!这就是人们常说的缓存穿透。 这一来二去,MySQL大哥忍不住了:“唉,兄弟,能不能帮忙想个办法,把那些明知道不会有结果的查询请求给我挡一下” 这时我想到了我的另外一个好朋友:布隆过滤器 我这位朋友别的本事没有,就擅长从超大的数据集中快速告诉你查找的数据存不存在(悄悄告诉你,我的这位朋友有一点不靠谱,它告诉你存在的话不能全信,其实有可能是不存在的,不过它他要是告诉你不存在的话,那就一定不存在)。 我把这位朋友介绍给了应用程序,不存在的数据就不必去叨扰MySQL了,轻松帮忙解决了缓存穿透的问题。 缓存击穿 && 缓存雪崩 这之后过了一段时间太平日子,直到那一天··· 有一次,MySQL那家伙正优哉游哉的摸鱼,突然一大堆请求给他怼了过去,给他打了一个措手不及。 一阵忙活之后,MySQL怒气冲冲的找到了我,“兄弟,咋回事啊,怎么一下子来的这么猛” 我查看了日志,赶紧解释到:“大哥,实在不好意思,刚刚有一个热点数据到了过期时间,被我删掉了,不巧的是随后就有对这个数据的大量查询请求来了,我这里已经删了,所以请求都发到你那里来了” “你这干的叫啥事,下次注意点啊”,MySQL大哥一脸不高兴的离开了。 这一件小事我也没怎么放在心上,随后就抛之脑后了,却没曾想几天之后竟捅了更大的篓子。…
-
最近炒的沸沸扬扬的手机sim卡保护码pin码和puk码是什么?
很多时候我们自己不用去百度搜索想了解的信息,因为大多数都是过时的解决办法。 眼下用户安全非常受到重视,一篇反诈骗的文章让大家了解到手机丢失的可怕,很多人开始注意自己手机的sim卡保护。 简单说就是如何使用pin码和puk码。我的方法是,下载中国移动app,问它。 打开app,找到右上角客服。输入pin,自动回复如下: PIN 码介绍:分为 PIN1 码和 PIN2 码。1、PIN1 码:默认是 1234, 如果被锁,可用 PUK 码解锁,如果忘记,可以使用其他手机拨打 1 0086 人工台,提供机主姓名和证件号码或客服密码来获得。2、P N2 码:即使锁住,也不影响手机使用,如想解锁,可通过营业厅获得 PUK2 码,个人户需持机主有效身份证件或客服密码、SIM 卡办理,代办时,需持双方有效身份证件原件。单位户持正规介绍信,经办人持本人有效身份证件或客户服务密码、SIM 卡办理。注:PUK 码输入错误超过 10 次部分机型 7 次), SIM 卡将报废需要补卡。 看到了吧,输入puk,就直接告诉你的puk1码了。
-

利用wget和curl命令测试IPv6的网站内容
http://6.ipv6screen.moneyslow.com 是只有ipv6地址的ipv6测试域名,用来检测你域名是否支持ipv6地址。 如果返回ipv6地址形式,说明你当前环境一定支持ipv6访问,而且默认优先选择了ipv6链路 通过nslookup可以看到如下结果: 首先在一个具有ipv6地址的服务器或者具有ipv6环境的机器上利用curl 加-v参数查看详细访问过程: 可以发现系统解析到ipv6地址,并进行ipv6访问。另外一种情况,http被重定向301了,那么301后是什么呢? curl并没有继续访问下去。这种情况下,要加参数-L 来继续进行访问:curl -v -6 -L http://6.ipv6screen.moneyslow.com 嗯,发现最终访问到了ipv6地址,并直接返回了结果显示在当前输出终端,结果就是我的客户端ipv6的地址。wget -6 http://6.ipv6screen.moneyslow.com wget默认会直接把访问的url地址作为文件名把结果保存下来,查看index.html就是结果。如果我们想要wget直接在终端输出结果显示,需要用 -q -O – 这样是比较干净的结果。
-

Discuz如何取消用户被冻结功能
一般来讲,不建议取消用户冻结功能。要知道存在用户密码泄露的情况下,会给网站经营者和互联网用户带来不确定的麻烦和经济损失,哪怕让用户麻烦一点去凭邮箱解冻,也不能让固定密码长期能用。 在充分评估安全前提下,可以去掉用户冻结功能。如下图所示操作即可: 关键知识点:当用户异地登录且距离上次登录超过 90 天时,帐号会进入未审核组,用户可以通过验证邮箱或者申诉解冻帐号,QQ登录的用户不受此功能影响 。 开启异常登录检测功能,除了在申诉之外,会员是QQ联系的管理员,管理员如何批量解冻这些账号? 但是按上述方法关闭异常登录检测功能后,这些账号还是处于“ 已冻结”状态 解决办法: 批量解冻SQL: update pre_common_member set freeze=0 where freeze!=0 单独解冻一个用户: update `pre_common_member`set freeze = 0 WHERE uid = xxx 更改会员uid 后执行
-

-

CentOS 7 +安装 Nginx 1.8.0 + PHP 5.6 + MariaDB 10.0 (LEMP) + SSL
1. change ulimits vim /etc/security/limits.conf * soft nofile 65535 * hard nofile 65535 2. Install MariaDB vim /etc/yum.repos.d/MariaDB.repo [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.0/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 yum install MariaDB-server MariaDB-client chkconfig mysql on mysql_secure_installation setting firewalld for mysql 3. Install Nginx rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm yum install nginx systemctl start nginx systemctl enable nginx setting…
-

如何设置git使用自己的私钥
以连接github.com为例,新建配置文件: ~/.ssh/config 内容如下: host github.com HostName github.com IdentityFile ~/.ssh/id_rsa_github User git 文件权限设置: chmod 600 ~/.ssh/config 现在可以用git命令进行clone了,如下: git clone git@github.com:{ORG_NAME}/{REPO_NAME}.git 以上,{ORG_NAME} 是账号名称,{REPO_NAME}是项目名称。 特别注意,在Linux 或者 macOS 下,最好做如下操作: chmod 400 ~/.ssh/id_rsa_github 如果git版本是 2.3.0,可以使用环境变量 GIT_SSH_COMMAND GIT_SSH_COMMAND=”ssh -i ~/.ssh/id_rsa_example” git clone example 如果git版本是2.10.0 ,就需要配置 core.sshCommand,命令如下: git config core.sshCommand “ssh -i ~/.ssh/id_rsa_example -F /dev/null” git pull git push 没有绝对完美的方法告诉git去使用哪个私钥文件,因为它依赖ssh的认证,所以可以用ssh的方法来临时进行私钥的认证,比如: $ ssh-agent…
-
windows操作系统如何找出锁文件或文件夹的进程
当我想删除一个文件夹的时候,碰到这样典型的错误: The action can’t be completed because the folder is open in another program 提示该动作不能执行,因为文件夹被另外的程序打开。 问题来了,我如何找到使用这个文件或者文件夹的进程? 第一个解决方案 参考微软官方的文档:https://gallery.technet.microsoft.com/How-to-find-out-which-c0d4e60e 步骤1: 在dos窗口执行 Import-Module 脚本名称 例如: Import-Module C:\Scripts\FindLockingProcess.psm1 步骤2: 通过命令 Get-Help FindLockingProcess –Full 显示使用这个文件使用的语法或者参数。 步骤3: 例子: FindLockingProcess -FileOrFolderPath “C:\test.xlsx” 2820 EXCEL.EXE c:\test.xlsx 说明被excel执行文件打开了。 PowerShell 脚本: IF((Test-Path -Path $FileOrFolderPath) -eq $false) { Write-Warning “File or directory does not exist.”…
-
如何清理(清除)谷歌浏览器(google chrome)的dns缓存和socket 连接池
这个简单了,在google浏览器输入: chrome://net-internals/#dns 如下图: 点击“clear host cache” 就可以了。 别着急,有时候你可能还需要清理浏览器的socket 连接池,同样输入: chrome://net-internals/#sockets 点击:“Flush socket pools” 即可。 如果上述方式没有起作用,请尝试以下方法: “Go to tools -> options -> Under the hood -> Clear Browsing data and check ’empty the cache’ 同时不同的操作系统下有各自的清理dns缓存的命令 Windows: ipconfig /flushdns OS X pre-10.7 (before Lion): sudo dscacheutil -flushcache OS X 10.7–10.9 (Lion, Mountain Lion, Mavericks): sudo…
-

如何怎样用curl命令实现post请求
官方命令的帮助地址:https://curl.haxx.se/docs/manpage.html#-d 直接上命令实例了: 发送一个字段和值: curl –data “param1=value1¶m2=value2” https://moneyslow.com/ziyuan.cgi 多个字段值: curl –data “param1=value1” –data “param2=value2” https://moneyslow.com/ziyuan.cgi 上传文件: curl –form “fileupload=@my-file.txt” https://moneyslow.com/ziyuan.cgi 定义上传的文件名称: curl –form “fileupload=@my-file.txt;filename=desired-filename.txt” –form param1=value1 –form param2=value2 https://moneyslow.com/ziyuan.cgi 发送空数据: curl –data ” https://moneyslow.com/ziyuan.cgi curl -X POST https://moneyslow.com/ziyuan.cgi curl –request POST https://moneyslow.com/ziyuan.cgi 传输大文件数据: curl –tr-encoding -X POST -v -# -o output -T filename.dat \ http://moneyslow.com/ziyuan.cgi 注意:-o…
-
wordpress上传文件超过了站点的最大上传限制–迅速解决!
改php和nginx 的配置文件: php相关就是 php.ini file_uploads = on ; upload_max_filesize = 20M; post_max_size = 20; post上限,一般来说,post_max_size设置要比upload_max_filesize稍大一些 还需要根据实际情况调整下面的选项 max_execution_time = 180; 脚本最大执行时间(秒),过短会导致文件还没上传完脚本就停止了 max_input_time = 180; 请求最大传输时间,过短会导致文件还没上传完传输就停止了 memory_limit = 128M; 内存上限 nginx相关就是nginx.conf nginx 如果上传文件时超过了nginx限制,就会返回一个“413 Request Entity Too Large”的错误 在http{}中添加一个client_max_body_size 20m;配置项;
-

使用 pdftoppm 将 PDF 档转为 JPG /JPEG/PNG/TIFF图片
pdftoppm 是 Linux 系统上专门用来将 PDF 文件转为图片的工具,转档速度比 ImageMagick 更快,效果也很相当不错。其基本使用方式为: # 使用 pdftoppm 将 PDF 档转为 JPG 图片档 pdftoppm -r 300 -jpeg input.pdf output 其中 -r 参数可用来指定每英寸点数(dpi),而 -jpeg 是指定输出图片格式为 JPG,这裡的输出档名不需要写副档名,pdftoppm 会以使用者指定的输出档名,再加上自动的编号与副档名来产生每一页的图片名称,把 PDF 的每一页各储存成一张图片。转出来的结果会像这样: pdftoppm 将 PDF 转 JPG 图片 输出图片格式 pdftoppm 这个工具在转换 PDF 文件时,若不指定输出文件格式的话,它会将 PDF 的页面转为 PPM 这种图片格式: # 预设会转换为 PPM 图片档 pdftoppm -r 300 input.pdf output…
-
linux shell下用uni2ascii 把 16进制格式的\uxxxx\uxxx unicode 转换为 UTF-8 中文
原文: https://centos.pkgs.org/7/repoforge-x86_64/uni2ascii-4.18-1.el7.rf.x86_64.rpm.html 先下载: rpmforge-release http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el7/en/x86_64/rpmforge/RPMS/ (http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm) 安装:rpmforge-release rpm: # rpm -Uvh rpmforge-release*rpm 安装uni2ascii Install uni2ascii rpm package: # yum install uni2ascii # echo ‘\u73af\u5883\uff0c\u800c’ | ascii2uni -a U -q 环境,而
-

shell字符串截取的几个方法
Linux 的字符串截取很有用。有八种方法。 假设有变量 var=http://www.moneyslow.com/123.htm. 1. # 号截取,删除左边字符,保留右边字符。 echo ${var#*//} 其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符 即删除 http:// 结果是 :www.moneyslow.com/123.htm 2. ## 号截取,删除左边字符,保留右边字符。 echo ${var##*/} ##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符 即删除 http://www.moneyslow.com/ 结果是 123.htm 3. %号截取,删除右边字符,保留左边字符 echo ${var%/*} %/* 表示从右边开始,删除第一个 / 号及右边的字符 结果是:http://www.moneyslow.com 4. %% 号截取,删除右边字符,保留左边字符 echo ${var%%/*} %%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符 结果是:http: 5. 从左边第几个字符开始,及字符的个数 echo…
-
如何转换 PDF 文件为Image (PNG, JPEG)图形化用GIMP命令行用pdftoppm工具
文本是译文。 原文:https://www.linuxuprising.com/2019/03/how-to-convert-pdf-to-image-png-jpeg.html 例子:按比例转换为宽度1024像素的图片: pdftoppm -jpeg -scale-to 1024 $file filename 使用GIMP将PDF转换为图像(PNG、JPEG等) GIMP是一个针对Linux、Windows和macOS的免费开源图像编辑器,可以将PDF文档的页面导出为各种图像格式,包括PDF、JPEG、TIFF、BMP等。 使用GIMP打开PDF文档时,每个页面都作为单独的层添加,一次只能将一个PDF页面导出为图像。您可以通过使用GIMP插件一次性将所有PDF页面(GIMP层)或选定的一组层导出为单独的图像。 使用GIMP将一个或几个PDF页面转换为PNG、JPEG和其他图像格式。 让我们从使用GIMP将单个(或仅几个)PDF页面转换为PNG、JPEG等开始,这不需要安装任何插件。从GIMP文件菜单中单击打开并选择PDF文件。将弹出“从PDF导入”对话框-确保“打开页面为”选项设置为“层”,然后单击“导入”: 原英文: This article explains how to convert the pages of a PDF document to image files (PNG, JPEG, and others). For this task we’ll be using (you can choose the one you prefer): GIMP (GNU Image Manipulation Program): for those wanting…
-

ubuntu下工具pdftoppm代替pdfimages转换pdf为jpeg或者png
假设有批量pdf文件,需要转为jpeg文件,按pdf文件名称建立目录,把图片放到目录下,以阿拉伯数字命名。 #!/bin/bash find . -type f -name \*.pdf |awk -F “/” ‘{print $2}’ > allpdf.lst for file in `cat allpdf.lst` do mkdir ${file%%.pdf}; echo “pdf name is: ” $file echo “mkdir is: ” ${file%%.pdf} pdftoppm -jpeg $file goodluck #pdfimages -j $file ${file%%.pdf} rename ‘s/goodluck-00//’ *.jpg rename ‘s/goodluck-0//’ *.jpg rename ‘s/goodluck-//’ *.jpg mv *.jpg ${file%%.pdf}/ done;…
-
sudo: /usr/libexec/sudo/sudoers.so must be owned by uid 0(sudo: /usr/libexec/sudo/sudoers.so 必须属于用户 ID 0(的用户))
$ sudo su – sudo: error in /etc/sudo.conf, line 0 while loading plugin “sudoers_policy” sudo: /usr/libexec/sudo/sudoers.so must be owned by uid 0 sudo: fatal error, unable to load plugins $ sudo su – sudo: 在加载插件“sudoers_policy”时在 /etc/sudo.conf 第 0 行出错 sudo: /usr/libexec/sudo/sudoers.so 必须属于用户 ID 0(的用户) sudo: 致命错误,无法加载插件 解决:以root用户身份执行: pkexec chown root /usr/lib/sudo/sudoers.so 或者 /usr/libexec/sudo/sudoers.so
-
![一直报错:DEBUG [GossipTasks:1] 2020-07-27 10:24:59,898 Gossiper.java:337 - Convicting /xxx.xxx.xxx.xxx with status LEFT - alive false](https://moneyslow.com/wp-content/uploads/2020/07/cassandra.jpeg)
一直报错:DEBUG [GossipTasks:1] 2020-07-27 10:24:59,898 Gossiper.java:337 – Convicting /xxx.xxx.xxx.xxx with status LEFT – alive false
在节点node离开72个小时内,debug信息打印这条信息是正常的。