技术文章

Linux运维常见故障排查和处理的技巧汇总

大憨熊 提交于 2021-02-20 19:57:46
作为Linux运维,工作中多多少少会遇见这样那样的问题或故障, 从中总结经验,查找问题,汇总并分析故障的原因,这是一个Linux运维工程师良好的习惯。 每一次技术的突破,都经历着苦闷,伴随着快乐,可我们还是执着的继续努力,从中也积累了更多的经验。 下面汇总了可能出现的故障及解决方法,看看你是否遇到过?并对你有帮助? 第一: 常见问题解决集锦 1.shell脚本不执行 问题: 某天研发同事找我说帮他看看他写的shell脚本,死活不执行,报错。我看了下,脚本很简单,也没有常规性的错误,报“:badinterpreter:Nosuchfileordirectory”错。 看这错,我就问他是不是在windows下编写的脚本,然后在上传到linux服务器的……果然。 原因: 在DOS/windows里,文本文件的换行符为rn,而在*nix系统里则为n,所以DOS/Windows里编辑过的文本文件到了*nix里,每一行都多了个^M。 解决: 1)重新在linux下编写脚本; 2)vi:%s/r//g:%s/^M//g(^M输入用Ctrl+v,Ctrl+m) 附:sh-x脚本文件名,可以单步执行并回显结果,有助于排查复杂脚本问题。 2.crontab输出结果控制 问题: /var/spool/clientmqueue目录占用空间超过100G 原因: cron中执行的程序有输出内容

腾讯开源 iOS 内存监控组件和OOM检测工具

谁说胖子不能爱 提交于 2021-02-20 19:57:20
自阿里巴巴开源Android检测内存泄露工具 LeakCanary 后,腾讯开源了一个在iOS 内存监控组件和一个OOM检测工具。 MLeaksFinder MLeaksFinder 是腾讯开源的 iOS 平台的自动内存泄漏检测工具,引进 MLeaksFinder 后,就可以在日常的开发,调试业务逻辑的过程中自动地发现并警告内存泄漏。开发者无需打开 instrument 等工具,也无需为了找内存泄漏而去跑额外的流程。并且,由于开发者是在修改代码之后一跑业务逻辑就能发现内存泄漏的,这使得开发者能很快地意识到是哪里的代码写得问题。这种及时的内存泄漏的发现在很大的程度上降低了修复内存泄漏的成本。 特性: 自动检测内存泄漏和释放不及时的场景 构建泄漏对象相对于 ViewContrller 的引用链以帮助开发者定位问题 不侵入业务逻辑,引入即生效,无需修改任何代码或引入头文件 用法 MLeaksFinder 可自动查找 UIView 和 UIViewController 对象中的泄漏。当发生泄漏时,它会在 View-ViewController 堆栈中显示泄漏对象预警。 Memory Leak ( MyTableViewController , UITableView, UITableViewWrapperView, MyTableViewCell ) OOMDetector

HTML5——表单美化

爱⌒轻易说出口 提交于 2021-02-20 19:56:39
闲聊: 今天小颖在跟着慕课网学习: 表单美化 看完了自己跟着敲了敲,顺便做个笔记嘻嘻,好记性不如烂笔头,脑子记不住,就写成笔记,以后也方便查看,嘻嘻。 正文: 1.表单美化_单选按钮篇 2.表单美化_复选按钮篇 3.表单优化_文本框篇 表单美化_单选按钮篇 目录: 效果图: 第一步: 保存图片:radiobutton.gif 第二步: 新建公用css:public.css body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote, th, td { padding : 0 ; margin : 0 ; } fieldset, img { border : 0 ; } table { border-collapse : collapse ; border-spacing : 0 ; } ol, ul { list-style : none ; } address, caption, cite, code, dfn, em, strong, th, var { font-weight : normal ; font-style : normal ; } caption, th { text-align : left ; }

在VMware通过挂载系统光盘搭建本地yum仓库

北城以北 提交于 2021-02-20 19:55:54
1.首先需要有一个VMware虚拟机; 2.进去虚拟机(这里用Linux下deCentOS进行演示); 3.用root账号进行登录,否则在根目录下没有一些操作权限; 4.打开终端; 5,输入命令“cd ..”,返回根目录; 6.创建一个名称为longshisan的目录,输入命令“mkdir /longshisan” 7.配置本地的yum源(挂载光盘)(将光盘挂载到longshisan),输入命令“mount /dev/cdrom/longshisan” 8.进入yum.repos.d,输入命令“cd /etc/yum.repos.d”; 9.打开文件列表,输入命令“ls”; 10.配置备份文件   输入命令:mv CentOS-Base.repo CentOS-Base.repo.bak        mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak        mv CentOS-Vault.repo CentOS-Vault.repo.bak        mv CentOS-CR.repo CentOS-CR.repo.bak        mv CentOS-fasttrack.repo CentOS-fasttrack.repo.bak        mv CentOS-Sources.repo CentOS

基于深度学习算法和传统立体匹配算法的双目立体视觉

让人想犯罪 __ 提交于 2021-02-20 19:55:37
点击蓝色“ AI专栏 ”关注我 哟 选择“ 星标 ”,重磅干货,第一时间送达 我喜欢看蓝天白云的景色,心情会变好 ,希望看到的你心情也会变好,让我们一起加油噶 。 这是站长的第 40 篇原创文章 01 PART 立体视觉是什么? 在开始之前,我相信很多站友都会有这个疑问,所以我想先在这里做一下简要的介绍,以方便大家快速地了解这个项目。我们知道,人类通过眼睛感知世界、获取信息。人类获取信息的方式有很多 种,可通过眼睛、耳朵、触觉、嗅觉、味觉等,但我们接受到的绝大部分信息都是通过视觉的方式获取到的。由此可见,视觉系统在人类的生存、生产、发展中起到了极其重要的作用。随着计算机技术、智能机器人等的广泛研究与应用,不少科学家尝试将人类视觉系统功能赋予机器。让机器获取与人类一般的视觉能力,是许多科研工作者长期以来的追求。目前,虽然还不能够使机器获得与人类一模一样的视觉感知能力与认知能力,但自上世纪中叶以来,各种视觉技术理论与图像处理技术得到了飞速的发展,我们正朝着这一目标不断前进。 立体视觉是计算机视觉的重要组成部分,而双目立体视觉又是立体视觉的一个重要分支。它是基于两幅图像的,通过模拟人眼视觉的方式,由两个视点对同一个物体进行观察,具体是由不同位置的两台相机(或一台相机经过旋转和移动)对同一场景进行拍摄,然后通过三角测量的原理来计算空间点在两幅图像中像素间的视差

java:合并两个排序的链表(递归+非递归)

♀尐吖头ヾ 提交于 2021-02-20 19:55:11
//采用不带头结点的链表 非递归实现 public static ListNode merge(ListNode list1,ListNode list2){ if(list1==null) return list2; else if(list2==null) return list1; ListNode newHead=null; ListNode tmp=null; //往新链表一个个添加节点 直至有一个链表为空 //tmp存放最后一个添加进新链表的节点 用于后续的拼接 while(list1!=null&&list2!=null){ if(list1.value<list2.value){ if(newHead==null){ newHead=tmp=list1; }else{ tmp.next=list1; tmp=tmp.next; } list1=list1.next; }else{ if(newHead==null){ newHead=tmp=list2; }else{ tmp.next=list2; tmp=tmp.next; } list2=list2.next; } } //拼接剩余链表至新链表尾节点 if(list1==null){ tmp.next=list2; }else{ tmp.next=list1; } return newHead; } /

Java链表和递归

99封情书 提交于 2021-02-20 19:54:56
删除链表的指定元素: public class ListNode { public int val; public ListNode next; public ListNode(int x){ val=x; } //链表节点的构造函数 //使用arr为参数,创建一个链表,当前的ListNode为链表头节点 public ListNode(int arr[]){ if(arr==null||arr.length==0) throw new IllegalArgumentException("arr can not be empty"); this.val=arr[0]; ListNode cur=this; for(int i=1;i<arr.length;i++){ cur.next=new ListNode(arr[i]); cur=cur.next; } } //以当前节点为头节点的链表信息字符串 @Override public String toString(){ StringBuilder res=new StringBuilder(); ListNode cur=this; while(cur!=null){ res.append(cur.val+"->"); cur=cur.next; } res.append("NULL"); return res.toString

浅谈导出Execl的报表数据解决方案

☆樱花仙子☆ 提交于 2021-02-20 19:54:34
项目中免不了要做一些数据导出功能,比如导出前一天的订单记录。涉及导出功能可大可小,根据系统具体的用户量、一天的订单量等情况。今天就讨论一下怎么设计一个合理的导出功能。 0x01:同步导出 这个方案最简单,就只需一个导出接口。这个接口只需实现根据用户条件到数据库查询相关数据,然后在应用程序中生成Execl电子表格,最后通过Response把生成的Execl电子表格回写到客户端即可 该方案简单,因为是同步导出,所以不适用大量数据导出。如果使用该方案进行大量数据导出的话,存在客户端(浏览器)超时的情况,导致导出失败;因为浏览器与Nginx之间有超时设置。 0x02:异步导出 异步导出一般需要设计三个接口。 第一个接口:开启一个线程对进行数据查询,并对查询到的数据进行Execl电子表格读写操作,同步返回导出状态标识; 第二个接口:查询第一个接口的完成状态,如果完成Execl电子表格操作,则返回true;否则返回false; 第三个接口:根据第二个接口返回的状态,如果返回true,就调用下载Execl电子表格;否则返回false的话继续轮询调用第二个接口,直到返回true; 这种方案比较耗服务器性能,因为需要第二个接口轮询应用服务器的导出状态,设置一个比较合理的轮询周期显得非常必要。另外,第一种方案和第二种方案都没有对导出的结果进行存库记录,如果要下载同样的数据,要整个流程重新走一遍

【资料】大型互联网公司架构演进之路资料汇总

♀尐吖头ヾ 提交于 2021-02-20 19:54:08
最近,我的朋友整理了各大互联网公司的架构演进相关介绍,让我们一起看一看各大互联网公司在成长过程中遇到过哪些问题,又是如何解决问题的。希望对你有帮助! 建议收藏保存,也欢迎点赞转发哦! 支付宝和蚂蚁花呗的技术架构及实践 支付宝的高可用与容灾架构演进 余额宝技术架构及演进 淘宝数据魔方技术架构解析 淘宝技术发展历程和架构经验分享 淘宝架构演进背后——零售业务中台架构设计探讨及实践 阿里游戏高可用架构设计实践 阿里B2B技术架构演进详解 阿里如何实现秒级百万TPS?搜索离线大数据平台架构解读 首次公开!菜鸟弹性调度系统的架构设计 秒杀系统架构分析与实战 王者荣耀游戏服务器架构演进(完整版) 京东峰值系统设计 京东咚咚架构演进 京东B2B业务架构演变 京东虚拟业务多维订单系统架构设计 京东商品单品页统一服务系统架构未公开的细节 数据蜂巢架构演进之路 京东到家库存系统架构设计 一张图看完京东基础架构演进之路 大促系统全流量压测及稳定性保证——京东交易架构分享 京东618实践:一元抢宝系统的数据库架构优化 京东上千页面搭建基石——CMS前后端分离演进史 京东物流系统架构演进中的最佳实践 京东话费充值系统架构演进实践 京东到家订单中心Elasticsearch 演进历程 新浪微博平台架构 微博深度学习平台架构和实践 新浪微博用户兴趣建模系统架构 新浪微博推荐系统架构的演进

SpringMVC入门详解及案例

女生的网名这么多〃 提交于 2021-02-20 19:53:32
Spring MVC浅入浅出——不吹牛逼不装逼 前言 上文书说了Spring相关的知识,对Spring来了个浅入浅出,大家应该了解到,Spring在三层架构中主做Service层,那还有Web层,也就是Controller层,这个就由SpringMVC来解决了。SpringMVC是Web层的一个框架,它是Spring的组成部分,可以先看看下面这张图: SpringMVC工作原理 MVC模式在之前我已经写过博客了《 Web开发模式 》,学SpringMVC之前有必要先看一下MVC模式。 SpringMVC框架主要由DispatcherServlet、处理器映射、控制器、视图解析器、视图组成,其工作流程如下: 客户端请求提交到DispatcherServlet; 由DispatcherServlet控制器寻找一个或多个HandlerMapping,找到处理请求的Controller; DispatcherServlet将请求提交到Controller; Controller调用业务逻辑处理后返回ModelAndView; DispatcherServlet寻找一个或多个ViewResolver视图解析器,找到ModelAndView指定的视图; 视图负责将结果显示到客户端。 在SpringMVC工作流程中包含4个SpringMVC接口,即DispatcherServlet