自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ithover的博客

一入编程深似海

  • 博客(66)
  • 收藏
  • 关注

原创 Linux使用Curl命令下载远程文件

服务器上使用curl可以做很多访问相关的功能下载也很方便,记录一下#模拟浏览器get请求并保存文件为redis.rdbcurl -i -XGET -O redis.rdb "https://redis.com/12502192.rdb" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36 E

2021-06-11 20:34:17 652

原创 Go批量给图片添加文字水印

我这里需要给批量从指定文件夹下复制图片并存储到新的文件夹下,同时要给图片打上文字水印原本文件所在位置需要达到的效果上面/001,/002,/003都是复制生成的,但是水印是不一样的代码如下这里依赖外部库github.com/golang/freetype安装这两个库的命令为go get github.com/golang/freetype目录结构为picture.go文件代码如下package mainimport ( "fmt" "os" "path/filepath

2021-06-11 20:18:32 585 1

原创 Go批量给文件重命名

使用go指给文件重命名,直接贴代码package mainimport ( "fmt" "io/ioutil" "os")/**批量修改文件名*/func main() { single()}//单文件夹下修改func single() { //指定要修改的路径 path := "./origin" fmt.Println(path) files, err := ioutil.ReadDir(path) if err != nil { //log.Fa

2021-06-11 20:06:03 1361

原创 使用rdbtools工具分析redis备份RDB文件

要分析redis的备份RDB文件,rdbtools是首选安装rdbtools先看下本机有没有装rdbwhereis rdb没有安装的话就要开始安装了,为因rdbtool是由python写的,所以用python的pip方式安装会方便很多,先安装pip1.安装python-pipyum install python-devel python-pip2.安装rdbtoolspip install rdbtools为了避免rdbtools在分析工作中报WARNING: python-lz

2021-06-11 19:47:53 619 4

原创 Linux合并拆分csv文件

之前合并文件都是写一个好长的脚本,并且还会遇到各种格式问题,最近才发现linux有直接合并和拆分文件的命令,用起来不要太爽以csv文件为例拆分文件#使用split命令将unique.csv文件拆分为单个500000行的文件到key目录下,并命令文件的前缀为uniq_split -500000 /root/unique.csv /root/key/uniq_合并文件#将当前目录下所有的csv文件合并为full.csv文件cat *.csv > full.csv...

2021-06-11 15:34:26 890

原创 GO语言学习笔记

最近开始学习golang语言了,看到了一个很不错的学习网站,记录一下,不然以后就又找不到了地址 http://c.biancheng.net/golang/对应文档中的学习笔记地址是 http://c.biancheng.net/skill/go/ 添加链接描述

2021-05-25 10:25:30 82

原创 git将本地分支内容推送到远程 git push origin test:test

本地有test分支,但远程没有,在本地test分支做了修改之要推送到远程,使用 git push origin test:test #提交本地test分支作为远程的test分支本地有test分支,远程也有test分支,但是本地的test分支不是从远程拉取下来的,要关联两个分支使用命令git branch --set-upstream-to=origin/test test #将本地分支与远程分支关联...

2021-05-24 20:50:20 1692

原创 docker-compose使用多个docker-compose.yaml配置文件创建容器

docker-compose.yaml文件创建容器是十分方便的,只用运行docker-compose up -d就可创建好配置文件里所有的容器了,但是如果有多个容器,又不想都放在一个docker-compose.yaml文件里怎么办呢?没关系,docker-compose命令的-f参数支持使用多个配置文件,1)一次使用多个文件docker-compose -f ./docker-compose.a.yaml -f ./docker-compse.b.yaml up -d如果是多个文件就使用多

2021-05-19 20:43:38 4676

原创 docker-compose -f docker-compose.yaml up -d运行后容器创建成功但无法启动STATUS: Exited (0)

今天在使用docker-compose创建新的go容器时,容器创建成功,但是却启动不了先说一下问题,#无法启动的配置文件version: "3.0"services: go: # go 容器服务,不同于容器名 image: golang # go 镜像 container_name: go # go 容器名称 networks: # 指定加入网络 - default expose: - 9090 # 暴露容器端口networks: #

2021-05-19 20:34:05 4145

原创 Mysql5.6+在线DDL

MySQL各版本,对于DDL的处理方式是不同的,主要有三种:1)Copy Table方式: 这是InnoDB最早支持的方式。顾名思义,通过临时表拷贝的方式实现的。新建一个带有新结构的临时表,将原表数据全部拷贝到临时表,然后Rename,完成创建操作。这个方式过程中,原表是可读的,不可写。但是会消耗一倍的存储空间。2)Inplace方式:这是原生MySQL 5.5,以及innodb_plugin中提供的方式。所谓Inplace,也就是在原表上直接进行,不会拷贝临时表。相对于CopyTable方式,这比较高

2021-05-18 20:48:38 253

原创 docker从容器里面拷文件到宿主机或从宿主机拷文件到docker容器里面

1、从容器里面拷文件到宿主机? docker cp 容器名:源文件 主机目录 docker cp nginx:/data/Server/test.sh ./2、从宿主机拷文件到容器里面 docker cp 主机目录 容器名:源文件 docker cp ./ nginx:/data/Server/test.shps:不管容器有没有启动,拷贝命令都会生效。...

2021-05-17 20:48:47 123

原创 linux上使用docker-compose.yaml配置shell文件entrypoint.sh启动容器时自动运行nginx,php服务

前面的文章介绍了使用docker-compose.yaml配置文件直接启动nginx,php容器,其中entrypoint参数是容器运行后要执行的命令,entrypoint.sh配置文件需要在提前的镜像中配置好,这样就可以直接使用这个配置文件了,配置文件如下:启动nginx服务#!/bin/bash#set -e 选项可以让你的脚本在出现异常时马上退出,后续命令不再执行#set -o pipefail。这个特别的选项表示在管道连接的命令中,只要有任何一个命令失败(返回值非0),则整个管道操作被视为

2021-05-17 20:39:04 1882

原创 windows10使用docker-compose.yaml配置创建多个容器

Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。可以把nginx和php都放在同一个配置里,这样只用一个命令就可以启动两个容器,就不用一个个去启动了我的配置文件如下:version: "3.0"services: web: # nginx服务名称,不同于容器名称 image: mynginximages # nginx镜

2021-05-17 19:58:14 1286

原创 linux下启动,关闭,重启nginx进程

nginx进程是需要单独启动的,具体命令老是忘记呀,做个备忘录启动 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf# -c参数指定了要加载的nginx配置文件路径停止#从容停止Nginx:kill -QUIT 主进程号 #例如:kill -QUIT 16391#快速停止Nginx:kill -TERM 主进程号 #强制停止Nginx:kill -9 主进程号 #用户主进程号文件kill进程

2021-05-13 20:04:59 402

原创 linux下启动,关闭,重启php-fpm进程

php进程是需要单独启动的,具体命令老是忘记呀,做个备忘录master进程可以理解以下信号INT, TERM 立刻终止QUIT 平滑终止USR1 重新打开日志文件USR2 平滑重载所有worker进程并重新载入配置和二进制模块查找#查找Whereis php-fpm启动#启动/usr/local/php/sbin/php-fpm关闭#关闭进程ps -ef | grep php-fpm#1找到master主进程 kill 掉就可以了#2通过 pid文件关闭kill -

2021-05-13 19:42:30 1160

原创 OCI runtime exec failed: exec failed: container_linux.go:367: starting container process caused: exe

运行docker命令的时候有时候会报这样一个错误OCI runtime exec failed: exec failed: container_linux.go:367: starting container process caused: exec: "phwp": executable file not found in $PATH: unknown这是因为我们的命令写错了,所以才报的错误,如上所示 ,是太粗心了,php写成phwp了,把命令写正确就可以了...

2021-05-13 19:21:45 3398 1

原创 vue-admin-template地址栏刷新或F5刷新返回404或空白的问题

vue-admin-template刷新的时候会遇到404或空白的问题,这个问题是因为开启了history模式但是后台的nginx或apache并没有支持,这时把后台nginx或apache加上就可以了#nginxlocation / { try_files $uri $uri/ /index.html;}#apache<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^inde

2021-05-13 19:11:24 792

原创 element-ui的时间组件datetimepicker使用format,value-format格式化时间,格式化为本地时间

element-ui里面的时间样式有三种TimePicker,DatePicker,dateTimePicker但在使用的时候去发现设置了format格式却会被转为utc时间,这样就造成的数据的偏差对比才发面这三个组件都有一样的参数<!--timePicker--> <el-time-picker v-model="value1" :picker-options="{ selectableRange: '18:30:00 - 20:30:00'

2021-05-13 18:47:41 6726

原创 laravel5.3update实现批量更新

天下文章一大抄,但是也要有点创新好不好,哎,本来只想更新一个字段,便网上一搜大部分都一个样,顿时就火冒三丈,算了,不说了,写我自己的吧其实我的需求很简单只是想一次更新1000条数据的同一个字段而已,很简单$model::where($where)->update(['state'=>1]);//这样就可以实现一次性更新了...

2021-05-13 17:53:52 838

原创 Linux下在shell中使用curl模拟get,post请求访问接口并设置代理

在服用端做测试或查找问题的时候,难免要测试接口,测试接口最简单的方法就是利用shell的curl命令来模板get,post请求,每次都用,但是有些参数时间一长就记不清楚了,所以记录一下以备忘curl 介绍curl 命令,是一个利用URL规则在命令行下工作的文件传输工具。curl 支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、FTP等众多协议,还支持 GET、POST、cookies、认证、从指定偏移处下载部分文件

2021-05-13 17:35:43 8680

原创 vue-admin-template增加自定义环境配置文件build:test

vue-admin-template里面只在两个环境build:productionbuild:state但是线上还测试环境,预发布环境,等等,这次就加一个自已的测试环境配置文件,记录一下1.增加命令行,在package.js文件增加下面的命令 "scripts": { ....... "build:test": "vue-cli-service build --mode test", ....... },2 增加test配置文件增加文件.env.test#

2021-05-13 16:44:47 985

原创 写一个shell脚本批量启动进程

需要批量启动进程的时候,把起进程的工作放在shell脚本里去维护还是很方便的:文件名startShell.sh#startShell.sh#!/bin/bashif [ ! -d /var/log/ ];then mkdir -p /var/logfi#定位当前路径,确保artisan可以运行,如果不写这里artisan要写全路径rundir=$(dirname $(readlink -f $0))cd $rundir && cd ../pwdstart=1a

2021-05-10 15:47:07 1483

原创 vue-admin-template + element-ui 改造table组件实现二次封装简化调用(三):组件调用操作表格数据--删除table表格数据

前面讲到到用自己封装的方法来实现table表格组件 tableHead: [ { field: 'date', label: 'date' }, { field: 'name', label: 'name', component: Name },//传入 Name组件渲染 { field: 'address', label: 'address' } ]这里的name就是我们自定议的插件,那么如果这个插件是个按钮,比如下面这样,那么在组件里操作

2021-05-07 21:26:44 396

原创 记一次laravel模型保存数据失败的例子runQueryCallback(‘insert into `tb...‘, Array, Object(Closure))

今天写代码的时候,好好的代码突然就开始报错,数据库一直保存不成功报错如下开始的时候以为是代码有错错误,试了很多次也没有修正,网上也没有一样例子,因为没有太复杂的逻辑,只有一外最基本的数组,逻辑如下后来才发现,是数据库在设计的时候忘记勾选自增id了,默认是自增id的,把自增id加下就可以了...

2021-05-06 21:10:47 879

原创 php导出文件(二):使用php_excel导出excel,csv文件

上一篇记录了使用写文件的方式来导出csv文件,这一次整理一下使用php_excel插件导出excel文件,虽然插件有些笨重吃内存,但是对于小数据量还是很有用的,因为其可以支持很丰富的 excel 样式,能实现很炫酷的表格内容,这点还是让人很心动的官方的例子还是很全面的,地址在这里https://github.com/PHPOffice/PHPExcel/tree/1.8/Examples,你想要的全都有可以导出pdf,csv,excel,ods格式//直接输出到浏览器 $objWriter = n

2021-04-30 18:56:05 354

原创 php导出文件(一):导出csv超大文件

在做后台任务的时候,经常会遇到需要导出excel表格的情况,php插件里也提供了php_excel组件,功能也十分强大,但是在做导出超大文件的时候就会遇到内存溢出,运行时间超限的问题,并且无法回避,这是因为php_excel会将整个工作表都存在内存当中,数据太多肯定会内存溢; 并且对于excel的操作来说,如果在本地打开一个几十mb大小的excel文件基本也会很慢,再对其进行各种计算或操作也是很不友好的,直对来说csv文件会更加轻量,对服务器来说,csv文件的操作在I/O方面,内存使用相对很小,所以在做作数

2021-04-30 11:52:04 566

原创 windows10使用docker搭建开发环境

window10上搭建docker开发环境,一路踩了很多坑,网络上看了各种文章,不是千篇一律照抄就是写的不详实,总是在关键点上不说明白,照着记录操作下来完全用不了,特些就自己记录一下,以后尽量少踩坑,有需要的同学拿走不谢本地环境支持本人机器是win10,查看本机是否开启了虚拟化像我这样是没有开启虚拟化的,开启虚拟化的过程每种机器可能有一些差别,但是主要流程如下开机后在控制面板\所有控制面板项\程序和功能点击启动或关闭windows功能把Hyper-V的功能都勾选上,这样本地环境已基本ok了

2021-04-29 20:50:56 6466 3

原创 vue-admin-template + element-ui实现搜索组件封装

因为最近要做项目的组件公共功能提取,尽量提高代码的可维护性,减少前端的开发工作量,故将前端常用的搜索项做了封装,这样页面使用时只用调用这个组件就可以了,话不多说直接上代码(ps也为了自己记录一下)###常用搜索组件封装<template> <el-form :inline="true"> <el-form-item v-for="(item, index) in SearchBoxData" :key="index" :label="item.label"&gt

2021-04-26 21:45:33 1093 1

原创 vue-admin-template + element-ui 改造table组件实现二次封装简化调用(二)

上次使用vue具名插槽的方式来实现了table表格的封装,这次换一种更实现方式,让页面代码变得更加简洁,先说一下这次使用的是动态组件来实现封装,话不多说,直接上代码###table封装<template> <el-table :data="tableData" style="width: 100%"> <template v-for="(column,index) in tableHead"> <el-table-column :key=

2021-04-26 21:08:53 371

原创 vue-admin-template + element-ui 改造table组件实现二次封装简化调用(一)

项目使用的是vue-admin-template的开发模板,但是vue-admin-template里并没有对table进行二次封装,导致使用的过程中在页面会产生大量的html代码,对开发来说很不友好,也无法做到页面的统一,为了后期的维护和升级,故将table组件做了二次封装###table封装<template> <el-table :data="tableData" style="width: 100%"> <template v-for="column i

2021-04-25 20:20:09 692

原创 vue-admin-template刷新页面跳转404处理

网上找了好多,大部分说的是将{ path: '*', redirect: '/404', hidden: true }放在路由最后就可实现,但新测这种方式对history方式的路由配置无效,history需要使用下面的方法来实现,已经验证过线上是可行的const createRouter = () => new Router({ mode: 'history', // require service support scrollBehavior: () => ({ y: 0 }),

2021-04-25 19:29:45 1565

原创 VM无法连接mks套接字连接尝试次数太多怎么办

在使用VMware虚拟机的时候,无法正常启动安装的系统,提示无法连接mks:套接字连接尝试次数太多网上度了一下 ,成功解决了这个问题,虽然比较简单但还是记录一下,方便以后再遇到这样的问题有地方可以查看先打开本地服务然后找到所有的VMware相关服务找到VMware Authorization Service服务点击属性打开属性设置,将启动类型改为自动(ps如果服务现在是启动的请先停止)然...

2020-04-15 21:54:29 1465

原创 下载文件时总是下载不完整, Content-Length mismatch: Response Header indicated 157,065,016 bytes, but server sent

下载文件时总是下载不完整, Content-Length mismatch: Response Header indicated 157,065,016 bytes, but server sent 145,085,896 bytes.问题解决过程问题最近在用php做远程文件的下载,但是下载的时候总是出现下载不完整的情况,比如189M的文件,下载的130M的时候就会出现网络失败的情况,最后抓包...

2019-10-21 16:02:37 2237

原创 php和Yii2中Object冲突

最近在开发中发现将本的php切换为7.2后Yii直接报错,后来查询发现是Yii2中Object 对象php7.2中为保留对象,所以会报错,查了一下发现有以下解决办法1、使用php7.2以下的版本2、自己修改Yii底层框架对象(需要时间成本和精力)3、更新Yii版本(v2.0.15.1后已修复)因为工作环境的网络限制,本地开发的时候暂时进行低版本的php进行开发,这时记录一下,以备后用...

2019-08-31 22:25:18 455

原创 Summernote 自定义按钮和回调

Summernote是一个很简洁的富文本编辑器,因为本来已经封装好的自己的图片上传,又不想用sumernote的上传方法,最后就直接重新定义一个图片上传按钮,然后就可以调用自己之前的上传方法了。 下面是自己重新定义按钮和自己调用自己方法的代码/** * 保存富文本模板 */$(document).ready(function () { var MyphotoButton = f...

2018-05-19 18:10:04 4065 3

转载 jquery中input中通过name属性查找

jquery根据name属性查找$("div[id]") #选择所有含有id属性的div元素 $("input[name='keleyicom']") #选择所有的name属性等于'keleyicom'的input元素 $("input[name!='keleyicom']") #选择所有的name属性不等于'keleyicom'的input元素 $("input[name^='keleyi'

2017-12-27 22:39:47 3715

转载 localhost、127.0.0.1 和 本机IP 三者的区别

localhost首先 localhost 是一个域名,在过去它指向 127.0.0.1 这个IP地址。在操作系统支持 ipv6 后,它同时还指向ipv6 的地址 [::1] 在 Windows 中,这个域名是预定义的,从 hosts 文件中可以看出:# localhost name resolution is handled within DNS itself.# 127.0.0.1

2017-12-27 22:10:11 16921

原创 redis的数据string,hash,lists,sets,sorted sets

stringstring是最简单的类型,一个 key对应一个Value,String类型是二进制安全的。Redis的 string可以包含任何数据,比如jpg图片或者序列化的对象。set #设置键值:#语法:set 键名 值#注意:如果键名已经存在,则会覆盖原来的值get#获取键值#语法:get 键名setnx #设置键值,#语法:setnx 键名 值#注意:在设置键值时,如果

2017-12-27 21:53:15 222

原创 php递归删除目录下的所有文件

php中删除目录或文件时候提供了很好的文件和目录 操作函数。直接上代码 递归删除所有文件时:一定要指定一个目录来删除,一定要过滤”..”目录,不然会一直递归删除到根目录function delAllFile($dir){ //打开目录 $handle = opendir($dir); //循环读取所有资源 while( $file = readdir($han

2017-12-08 22:28:07 250

原创 Linux系统中Vi编辑器的常用命令

VI全称Visual Interface,也就是可视化接口,这是Linux的标配,所有Linux操作系统中都有她的影子,就像Windows中的记事本一样。Linux环境下的文本编辑器还有vim、emacs等。Vi编辑器有三种工作模式,如下图所示: 当用vi命令打开一个不存在的文件时,会默认去创建这个文件并处于命令模式下。文件编辑操作vi filename #使用vi打开

2017-12-08 22:08:53 552 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除