Uncategorized

5种Linux下安全删除文件的软件工具(最新)

本文主要讲述Linux系统下5种不同的安全删除文件工具的用法介绍。 通常情况下,我们在Linux系统下删除文件的主要方法是通过rm命令或者unlink命令进行删除。 但是正如我们之前介绍过的rm命令删除文件的原理,该命令只是将文件所对应的inode链接删除,但是文件在磁盘存储的数据依然还在,这样就有可能造成数据的泄露。 下面我们会介绍5种Linux系统下永久安全的从磁盘中删除文件数据的工具。 Shred 删除工具 Wipe删除工具 Secure-delete删除文件工具 Sfill 删除工具 Sdmem 内存文件删除工具 Shred 删除工具 Shred工具主要是通过多次的覆盖文件的方式来达到安全删除文件的目的。 Shred 工具用法及选项 用法如下: Shred [选项]  文件名 选项如下: -f, –force           必要时修改权限以使目标可写 -n, –iterations=N    覆盖N 次,而非使用默认的3 次 –random-source=文件      从指定文件中取出随机字节 -s, –size=N          粉碎数据为指定字节的碎片(可使用K、M… read more »

CURL命令忽略https请求的SSL证书

在使用wget命令来获取文件的时候,我们可以使用wget命令的 –-no-check-certificate 选项来忽略证书的认证。 那么在执行curl命令是否也可以忽略SSL证书的警告信息呢。 当然是有的,我们可以在执行curl 命令的时候,使用 -k 或者 –insecure 选项,来忽略签名认证的警告。 这样就可以让curl命令执行不安全的SSL连接,进而去获取数据。 命令使用示例如下: curl -k https://osetc.com curl –insecure https://www.osetc.com 在php中我们通过curl来实现post 和get请求的时候,也可以忽略SSL证书的验证,大家可以参考下面的代码: function request_by_curl($url, $post_data = ”, $timeout = 30) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url);… read more »

12 个最佳的免费网络监控工具

要让一个多级机构运行良好而且平稳的话,一个非常艰巨重大的任务就是做好网络管理。每个机构都配备专门的人员,即网络分析师,来进行网络管理。他们使用了许多工具来监视网络的运行状况,并查看网络流量的上升和下降状况。他们还必须确保整个网络能够平稳地运行,因为只要有一分钟的网络中断就会使得整个机构的工作出现混乱。 使得机构工作平稳运行的最重要的方式之一就是使用各种网络监视工具。使用IDS检测来自外部网络的威胁和问题,使用网络监视软件来监视由于内部服务器负载过高或者某个网络部员工的小错误而引起的问题。网络监视软件可以跟踪数据包的流向,而且它还可以对数据包活动表现异常的地方进行检测,以确定出错的地方。例如,为了检测web服务器的运行状况,网络监视软件将定期不间断地发送32位字节的ping请求,跟踪服务器是否收到了该请求并及时响应。 现有的网络监控工具可以说是数以百计,但是这些工具往往比较昂贵,因此花些时间去选购是很值得的,需要仔细研究其适用性、性能、专业性等方面的特性,需要判断的因素很多,但短时间内理解这些指标并作出选择可不是一件容易的事。因此,我们利用专业经验,建立了包括一些最佳免费网络监控工具的清单,为实现网络的安全、稳定长期运行提供帮助,以下是具体的清单列表: 1) Fiddler Fiddler(几乎)是适用于任何平台和任何操作系统的最好的免费网络工具,并提供了一些广受欢迎的关键特性。如:性能测试、捕捉记录HTTP/HTTPs请求响应、进行web调试等很多功能. 2) Nagios Nagios是另外一款在互联网上的免费网络监控工具。 它是开源的监控解决方案,它表现非凡并且持续为全球成千上万的组织提供可靠的监测。 3) Nedi Nedi也是一款对用户来说开源的网络监控工具。 NeDi可以在你的核心网络设备上,针对CDP, FDP和、或LLDP充分发挥潜力。它还可以包括其他网络组件, 当他们位于网络边界上,也可以工作地非常好。 4) EasyNetMonitor 一个监控你电脑本地和互联网主机之间网络的最小免费工具。开始我们的EasyNetMonitor,打开弹出菜单可以看到你电脑的网络状态信息。 免费网络监控 EasyNetMonitor 是一个小而简单易用的测试远程主机和其他网络主机之间网络到达率的工具。很简单的点击EasyNetMonitor图标就可以获得关于你本地网络和互联网主机的实时信息。 5) Microsoft Network Monitor 这个是Microsoft. Network Monitor 3.4稳定版非开发版协议分析器提供的网络监控工具。微软消息分析器替代了网络监控3.4。微软消息分析器提供最新的协议分析,比如捕捉屏幕,显示,协议消息流量分析、事件和在其他系统或应用程序消息故障排除和诊断方案方面。这是一个更强大的工具来捕获和分析协议消息。 6) Cacti Cacti 是一个完整的网络绘图解决方案旨在利用RRDTool的数据存储和图形绘制功能。Cacti提供了一个快速的轮询器,先进的图形模板,多个数据采集方法和用户管理的开箱即用的特性。所有的封装都是为局域网内的数百台设备复杂网络的安装提供很直观的,易用的界面。 7) Zenoss Zenoss 的核心是为企业IT监控工具提供一些关键特性- 跨平台设备性能和可用性监控 高度可定制的基于web的控制台和仪表板 设备探索、建模和分类 三层网络拓扑图… read more »

RHCSA 系列(三): 如何管理 RHEL7 的用户和组

和管理其它Linux服务器一样,管理一个 RHEL 7 服务器要求你能够添加、修改、暂停或删除用户帐户,并且授予他们执行其分配的任务所需的文件、目录、其它系统资源所必要的权限。 RHCSA: 用户和组管理 – Part 3 管理用户帐户 如果想要给RHEL 7 服务器添加账户,你需要以root用户执行如下两条命令之一: # adduser [new_account] # useradd [new_account] 当添加新的用户帐户时,默认会执行下列操作。 它/她的主目录就会被创建(一般是”/home/用户名”,除非你特别设置) 一些隐藏文件 如.bash_logout, .bash_profile 以及 .bashrc 会被复制到用户的主目录,它们会为用户的回话提供环境变量。你可以进一步查看它们的相关细节。 会为您的账号添加一个邮件池目录。 会创建一个和用户名同样的组(LCTT 译注:除非你给新创建的用户指定了组)。 用户帐户的全部信息被保存在/etc/passwd文件。这个文件以如下格式保存了每一个系统帐户的所有信息(字段以“:”分割) [username]:[x]:[UID]:[GID]:[Comment]:[Home directory]:[Default shell] [username]… read more »

如何用 Bash 创建一个二进制发布包

linux下安装JDK的时候,Sun公司为JDK6的linux版本提供了一个shell的安装包,用起来特别的好用,基本上和在Windows下安装软件没什么两样,shell文件执行之后,几乎一切都系都设置好了,不用我们自己再动手设置PATH和JAVA_HOME,可是一个shell文件中是如何把二进制代码包含进来的呢? 再例如淘宝为linux开发的淘宝插件,其实也是一个shell文件,但是执行这个shell文件之后,会安装很多二进制的东西,同样的问题,Shell只是文本文件,其中的二进制是怎么来包含进来的呢? 从文本文件转换出可执行文件,通过编译器把源程序编程成可执行程序当然是可以的,但是前面提到的哪两种情况都不是这样做的。原因有两个,第一对于大的项目来说,编译需要的时间比较长,环境比较复杂;第二,更加重要的是,这样做其实和从源代码编译程序没什么两样,对于不想让用户看到自己的源码的商业软件来说,这显然是不可取的。 我们看看一般的程序是如何发布他们的二进制包的。 一般的程序,无非是把二进制和必要的文档压缩到一个压缩文件中,然后通过README文档的解释程序的运行依赖什么样的假设,然后,你就可以把程序自行的移动到你想移动的地方去了。 很多时候,我们把程序放到任何地方都是可以运行的,但是程序可以运行,并不是说我们已经完成了程序的安装,举个例子来说,如果我们解压JDK的二进制包之后,直接把程序移动到一个地方,然后把对应的bin目录添加到PATH中就可以执行JDK提供的一系列工具了。 但是如果我们安装其他的依赖与JDK的程序的时候,比如TOMCAT,那么就会有问题。因为我们只是在PATH中加入了JDK的bin目录而没有制定JAVA_HOME这个环境变量,所以TOMCAT很可能会不能运行。 再比如我们使用man命令来查看一个程序的手册,一般情况下二进制包中也会包含man文档的,但是如果我们只是把解压的二进制包的路径添加到了PATH中,还不能在man中找到对应的文档。 也正是因为这样的原因吧,所以很多的二进制包的发布是使用deb或者rpm包来发布。安装的时候少了很多的烦恼。要制做deb或者rpm包当然是需要学习成本的,而且deb和rpm也只能在对应的linux发行版中使用,如果想要为所有的Linux发行版都提供一个安装文件,那么使用shell文件来做无疑是最好的办法。 Shell的学习成本低,而且对linux平台来说有通用,那么是如何做到的呢? 想想我们在手动安装的情形,无非是把压缩的二进制包解压,移动到特定的目录下,在PATH变量中添加二进制包的可执行文件的路径等等工作。首先我们把二进制包压缩文件和shell文件分开。这样一来,shell中只要完成解压,然后把解压后的目录移动到指定的目录中去,设置各种各样的环境变量然后就完成了工作了。 但是我们在如何把压缩文件和这个shell解压之后要执行的命令的shell文件一起放到一个shell文件中呢? 要做到这一点,首先这个shell文件中,要有可以解压的二进制内容,其次,这个shell要做的工作就是,把二进制内容,解压,然后把原来手动做的工作在这个shell中用命令完成。再用shell写个脚本完成一些手动完成的工作,这个任务比较容易,所以制作shell安装包的难点就是如何在其中包含二进制内容了。 如何在一个文本文件中记录二进制的内容呢? 这个问题早就被解决了。答案就是使用Base64编码。在linux下就有base64 这个命令程序就是来做这个工作的。base64可以把文件进行base64的编码,输出的标准输出中去或者把文件中的Base64编码的内容解码。命令base64除了可以对文件的内容做Base64的编解码外,也可以对标准输入中的数据进行Base64编辑码。 有了这些预备的知识,那么我们就可以看看具体的如何来做shell的二进制发布包了。 首先假设我们要发布的文件都放在名为test的当前文档中。 把要发布的文件打包 tar zcf test.tar ./test 对打好的二进制包做Base64编码 base64 ./test.tar > test_base64.txt 准备安装文件的shell文件 test_base64=””;#test_base64中的所有内容 echo $test_base64|base64 -d >test.tar tar… read more »

PHP 之 FastCGI 与 mod_php 详解

网上对于FastCGI与mod_php的知识比较杂乱而不全面,故在此整理一下,以便入门学习者查阅方便。 背景 PHP最常用的方式是以模块的方式(mod_php)运行在Apache中,也是Apache运行PHP的默认方式;但在Nginx中,Nginx又使用的是PHP-FPM,但是PHP-FPM到底是个什么东东?跟php有什么关系?今天我们一起来探究一番。 PHP处理器(PHP handlers) 首先需要记住的是,任何一种Web服务器(Apache、Nginx等)都是被设计成向用户发送html、图片等静态资源的,Web服务器自身并不能解释任何动态脚本(PHP、Python等)。 PHP处理器就是用来解释Web应用中的PHP代码,并将它解释为HTML或其他静态资源,然后将解析的结果传给Web服务器,最后再由Web服务器发送给用户。 大多数的Web服务器都不能解析PHP代码,因此它需要一个能解析PHP代码的程序,这就是PHP处理器。 现在我们知道了,Apache与Nginx都需要PHP处理器来处理php代码,那么怎么连接上服务器与php处理器呢?也就是说服务器与php处理器如何通信? 答案是通过SAPI(Server Application Programming Interface 服务器端应用编程端口),简单来说,SAPI指的是PHP具体应用的编程接口, 就像PC一样,无论安装哪些操作系统,只要满足了PC的接口规范都可以在PC上正常运行, PHP脚本要执行有很多种方式,通过Web服务器,或者直接在命令行下,也可以嵌入在其他程序中,有兴趣大家可以研究PHP内核。 我们这里继续讨论PHP最常用的SAPI提供的2种连接方法:mod_php和mod_fastcgi。 mod_php模式 咱们回顾一下,Apache是怎么能够识别php代码的?是不是Apache的配置文件httpd.conf中加上或者修改这样几句: //添加 LoadModule php5_module modules/libphp5.so AddType application/x-httpd-php .php //修改 DirectoryIndex index.php index.html index.htm index.html 也即php作为Apache的一个子模块来运行,当通过web访问php文件时,Apache就会调用php5_module来解析php代码。 配置加载mod_php模块后,php便是Apahce进程本身一部分,每个新的Apache子进程都会加载此模块。 mod_fastcgi模式… read more »

Zorin OS:Linux新手最应该使用的个人桌面系统

Zorin OS 是一款基于 Ubuntu 的 Linux 发行版,特别为 Linux 新手而设计。它拥有类似 Windows 的图形用户界面,以及很多类似 Windows 下的应用软件。Zorin OS 还带有能让用户运行很多Windows 软件的程序。该发行版的终极目标是提供一份可作为 Windows 替换的 Linux 选择,并让 Windows 用户在避免烦琐的同时享受 Linux 的所有特性。 这一段话是几乎所有的中国的 Linux 网站上对 Zorin OS 的描述。 本人是 linux 新手,在 Linux 中国的新手群里得到各位大神的指点,安装了很多适合个人用的… read more »

使用 Ansible 高效交付 Docker 容器

使用 playbook、插件和 Docker 模块设置和扩展 Ansible 环境 Docker 和它的容器工作流可封装、共享和部署您的应用程序环境。Ansible 是一个与 Docker 高度兼容的自动化工具,它使用一个强大的接口来管理远程服务器上的容器。在本文中,我将探索为何和如何使用 Ansible 的可扩展设计来将 Docker 和 Ansible 的最佳功能合并在一起。 Docker 之所以如此流行,是因为它创造了一种采用方便的命令行接口 (CLI) 和 HTTP API 工具来封装、运行和维护容器的独特方式。这种简化降低了此技术的入门门槛,使得将应用程序及其运行时环境封装到一个简单 Dockerfile 中的独立镜像中变得可行。Docker 使您能够开发更复杂的项目,但您仍需要配置这些容器。在本文中,我将展示 Ansible 如何通过更清晰的语法带来配置管理器的特性。您将学习如何仅使用已安装的 Python 和 Docker 构建任何堆栈。 在介绍 Ansible… read more »

Linux:MBR & GPT

MBR & GPT[转] 2011-04-25 08:57 MBR 和 GPT 的问题已经走到了非常现实的阶段-3T硬盘开始普及。MBR 由于对 3T 硬盘寻址无法支持,终于要开始被弃用了。但仅仅只是“开始”,我感觉至少10年之内 MBR 还不会消失。恐怕当GPT适应不了需求的时候,MBR才会消失。 一、MBR 的失误 说“失误”牵强了一点。我们不能要求当年只有5M的硬盘就扣出2M来放寻址信息。计算机永远比你想象的要发展的快。 首先你要有一些基本的硬盘的MBR知识,如果你不熟悉,可以先在 wiki 看一看硬盘的基本结构。 在了解了磁道、柱面、扇区之后,再看下面的 MBR 结构就很了然了: 基本MBR结构 偏移量(位置) (within sector) 长度 (in bytes) 解释 十进制 十六进制 000 –… read more »

Linux:如何在 Ubuntu 启用 Radeon 开源驱动的 UVD 硬件解码

Phoronix 今天公布了在 Ubuntu 启用 Radeon 开源驱动 UVD 硬件解码的方法。 首先,你需要一块 Radeon HD 4000 系列或更新的显卡。然后,可以按照以下步骤逐步安装: 安装 VPDAU 的头文件:sudo apt-get install libvdpau-dev 从 Mesa 的 Git 仓库抓取最新代码,加上 –with-gallium-drivers=r600 –enable-vdpau 编译参数进行编译安装。 在 /etc/ld.so.conf.d/z.conf 加上 /usr/local/lib/vdpau 参数,没有这个配置文件可自行创建,然后执行 ldconfig 命令。 安装 drm-next 分支的 3.10 内核,可以从 Ubuntu Mainline… read more »

Linux:Facebook如何实现PB级别数据库自动化备份

Facebook的MySQL数据库,是世界上最庞大的MySQL数据库之一,在不同地区有数千个数据库服务器。因此,备份对他们来说是个巨大的挑战。为了解决这个问题,他们构建了一个高度自动化、非常有效的备份系统,每周移动多个PB的数据。Facebook数据团队的Eric Barrett通过一篇文章分享了他们的做法。 他们没有采用大量前载(front-loaded)测试,而是强调快速检测失败,并且进行快速、自动化纠正。部署几百个数据库服务器,只需很少人力干预。使用下面的三个措施,他们做到了有节奏的增长,同时具备支持上十亿用户的灵活性。 措施1:二进制日志和mysqldump 第一道防线称为“措施1”,或“机架”备份(rack backup),简称RBU。在每个数据库机架上,不论其类型为何,都有两个RBU存储服务器。以RBU作为数据库服务器放在同一个机架中,这可以保证最大的带宽和最小的延迟,它们同时可以作为缓存,在备份的下个措施使用。 收集二进制日志,是这些服务器的工作之一。二进制日志会不断以流形式,通过模拟从进程(simulated slave process)输送到RBU主机中。这样一来,不需要运行mysqld,RBU就可以接收到同样的更新作为复制版本。 在RBU上保存同步的二进制日志很重要:如果一个主数据库服务器离线,该服务器上的用户将无法更新状态或是上传照片。出现问题后,他们需要保证修复时间越短越好。有可用的二进制日志,就能让他们在数秒内启动另一个数据库作为主数据库。由于RBU中有秒级的二进制日志,即使某个旧主数据库完全不可用,也没有关系,只要利用将记录下的事务恢复到上一个备份中即可完成立即恢复。 RBU服务器的第二个工作是执行传统备份。MySQL备份有两种方式:二进制和逻辑(mysqldump)。Facebook使用逻辑备份,因为它与版本无关,提供更好的数据完整性,更紧凑,恢复起来更省事。不过,当为某个数据库构建全新复制时,他们仍然使用二进制拷贝。 mysqldump的一个主要好处是:磁盘上的数据损坏不会影响到备份中。如果磁盘某个扇区出现问题,或是写入错误,InnoDB页面校验和就会出错。在组合备份流时,MySQL会从内存中读取正确的内容,或是去磁盘读取,然后遇到错误的校验和,停止备份(以及数据库进程)。mysqldump的问题是:污染用来缓存InnoDB块的LRU缓存。不过,新版本的MySQL中,会将LRU插入操作从扫描时放到缓存结束。 对在自己权限范围内的所有数据库,每个RBU都有一个夜间备份。尽管有着天量级别的数据,Facebook的团队还是可以在几个小时内完成对所有数据的备份。 如果RBU失败,自动化软件会将其职责分配给同一集群中其他系统。当它恢复上线后,职责会自动返回到最初的RBU主机。 Facebook团队不会过分担心单个系统的数据保留问题,因为他们有措施2。 措施2:Hadoop DFS 在每个备份和二进制日志收集完成后,他们会马上将其复制到他们的大型定制化Hadoop集群中。这些集群是非常稳定的复制数据集,并有固定的保留时间。因为磁盘大小增长很快,较老的RBU可能不足以保存一到两天的备份。不过他们会按需要增长Hadoop集群,同时不需要担心底层硬件情况。Hadoop的分布式特性让他们有足够带宽,完成快速数据恢复。 不久,他们会把非实时数据分析放到这些Hadoop集群中。这可以降低数据库中非关键读的次数,让Facebook网站的响应速度更快。 措施3:长期存储 每周,他们会从Hadoop备份移动到另一个地区的分散存储中。这些系统是最新而且安全的存储系统,在他们的日常数据管理工具流程之外。 监控 除常用的系统监控外,他们还会捕捉很多特定的统计数据,比如binlog集合延迟、系统容量等等。 为备份失败打分,是他们最有价值的工具。因为Facebook的数据库和同时运行的维护任务量级,错过某些备份也不奇怪。广泛的失败和多日没有成功的单个备份,这都是他们要注意的重点。因此,某个错过备份的得分会随着时间呈指数级增长,这些得分的不同聚合,让团队能对备份的整体健康度有一个有效而快速的了解。 比如,在一天内,某个数据错失一次备份,得1分,一天错失50次备份,就是50分。但在三天内的一次数据库错失,就是27分(3的3次幂),三天内50次,这是很严重的问题,得分就是1350(50乘以3的3次幂)。这会在他们的监控图上出现一个巨大的波峰,团队会马上对其采取行动。 恢复 在系统管理员中有句老话:“如果你没有测试过你的备份,就等于没有备份。” 因此,Facebook团队构建了一个测试系统,会持续地从措施2开始,将数据恢复到测试服务器上。恢复完成后,他们会执行多次数据完整性检查。如果有任何反复出现的问题,系统就会报警,提醒相关人员关注、审核。该系统可以发现所有问题,包括MySQL的bug,到备份过程中的纰漏,并可以让他们更灵活地应对备份环境中的变化。 他们构建了一个名为ORC(ORC恢复协调器的递归缩写)的系统,工程师如何需要恢复他们所用工具的数据库的过去版本,就可以以自服务方式使用该系统恢复数据。对于快速开发来说还是挺方便的。 在结尾,Eric Barrett说道: 备份不是最迷人的工程工作。它们即是技术活,又是重复性的,如果一切正常,没人会注意。它们也是跨学科和团队的,需要懂得系统、网络和软件等多方面的专业知识。但是,确保你的记忆和联系安全无误,这是无比重要的事情,而且到最后,也是充满回报的事情。 有网友问到: 在不运行mysqld的RBU上,你们如何完成二进制日志的流传送?什么是模拟从进程? Facebook的MySQL性能工程师Harrison… read more »

Linux:理性选择key-value Store

前言 开源产品固然好,但是各种场景的数据需求确实多少有些差距,利用现有的软硬件资源面对现有的问题快速做出调整是才是数据库工程师的真正价值。 综述 key-value store由于本身实现不像成熟RDBMS那么复杂,换句话说开发周期不常,性能更是由于去掉了ACID的约束,从一个个benchmark上看对比起主流开源关系型数据库mysql innodb的曲线都非常好看,op/s号称高一个数量级的不是没有,request latency更是有redis类似的内存性数据库,在高并发的场景下99.95%响应在1ms以下一点也不惊奇。其实对于了解oltp数据系统的同学来说,这其实一点也不神奇。 本文导航 –前言 –综述 –需求 –业务篇 –系统运维篇 –选择 –测试 –总结 –发展 –1.更少的硬件成本 –2.更少的维护成本 –3.更强控制力度 –4.更快的开发周期 –5.更加可靠 相关阅读 key-value Store

Linux:每日Ubuntu小技巧 – 改变Ubuntu Unity启动器尺寸

这里有一些给新Ubuntu用户的小技巧。这一系列的小技巧是为了帮助Ubuntu新用户轻松地配置和管理他们的电脑。这不是面向专家用户的,只是为了那些刚刚开始使用Ubuntu的用户。 Ubuntu启动器是Ubuntu Unity桌面的关键部分。启动器是一个布满图标的垂直条,当你登陆的时候,它就会位于屏幕的左边栏。通过它您可以从桌面方便地打开或者启动程序,还可以让您快速访问应用、工作空间、可移动设备和垃圾桶。 默认情况下,这个启动器图标大小被设置为48X48px,即使是较小的屏幕上也如此。如果你需要调大或调小启动器的尺寸,那么请继续接下来的学习。 想调整Unity启动器尺寸的原因有很多。其中一个就是为了适应更小的屏幕。如果你的屏幕很小,默认尺寸不合适,那么你就需要改变它了。 如果图标默认尺寸太小,想要增大它,则可以调整启动器来增大图标,从而容易点击。 下面开始调整大小,点击右上角的齿轮按钮弹出菜单条,点击系统设置(System Settings…),如下图。 接下来,选择 外观(Appearance) 最后,使用滚动条来调整(增大\减小)启动器的图标尺寸。 这个改变会被自动应用。记住,如果你想要继续作用默认尺寸,移动到48. 这是另一个为Ubuntu新用户的小技巧。欢迎回来掌握更多的Ubuntu小技巧。如果你是一个老手并且想要做出贡献,就请在下面留言吧。 享受吧! via: http://www.liberiangeek.net/2013/09/daily-ubuntu-tips-resize-ubuntu-unity-launcher/ 本文由 LCTT 原创翻译,Linux中国 荣誉推出 译者:Vic___ 校对:jasminepeng 来源:https://linux.cn/article-2243-1.html

Linux:Linux 下使用Trickle限制下载/上传带宽

你有没有遇到过一个程序占用了你所有的网络带宽的情况?如果你遇到过,那么你就需要限制带宽的应用。不管你是一个系统管理员还是一名普通Linux用户,您都应该学习如何控制应用的上传和下载速度来确保你的网络带宽不会被一个程序耗光。 Trickle 是什么? Trickle是一款带宽控制供给,用来限制如Firefox, FTP , SSH以及其他使用网络带宽的程序的带宽。你希望你的Youtube音乐体验影响到你的ftp下载么?如果不想,请继续阅读这篇文章,学习如何在你的机器上安装和使用trickle。 怎样在Linux上安装Trickle trickle工具有一些依赖包,安装和使用trickle之前必须安装“libevent 库”,不过这个库在大多数现在的Linux机器上已经默认安装。 在 Debian/Ubuntu/Linux Mint 上 在Debian/Ubuntu/Mint 机器上运行 apt-get install trickle进行安装。请确保源列表已经更新,接着安装你想要的应用。 $ sudo apt-get update $ sudo apt-get install trickle 在 RHEL/CentOS/Fedora 上 首先你需要更新系统,然后使用下面的命令安装trickle。 # yum update… read more »

Linux:Linux系统监控神器–Collectl

系统资源监控 为使系统良好运转,Linux系统管理员经常需要监测cpu,内存,磁盘,网络等系统信息。Linux上已有iotop,top,free,htop,sar等丰富的常规工具来实现监测功能。今天让我们走进Collectl来了解这个集测试/监控/分析系统性能为一体的Linux工具。 Collectl作为一个轻量级的监控工具,在同类工具中是功能最全的。用户可监测不同的复杂系统矩阵值,并可保留数据以做之后的分析。不同于其他只用来监测特定系统参数的工具,Collectl可以同时监测不同的变量,并以合适的方式记录它们。 摘自Collectl官网 … 不同于或聚焦于一小组统计数据、采用唯一输出方式,或采用迭代、作为守护进程运行的大部分监测工具,collectl可以同时全部实现。用户可选择各种子系统中的任一系统来监测包括内存,CPU,磁盘,索引节点,无线带宽,lustre,内存,网络,网络文件系统,进程,二次型,slabs,套接口及TCP等信息。 深入学习前让我们先看以下命令。 $ collectl waiting for 1 second sample… # #cpu sys inter ctxsw KBRead Reads KBWrit Writes KBIn PktIn KBOut PktOut 0 0 864 1772 0 0 0 0… read more »

Linux:五种方法检测你的 Linux 是32位还是64位

有的时候 Linux 新手们在下载软件的时候十分困惑,因为下载页面常常同时提供32位和64位版本的软件。所以弄清楚你的操作系统是32位的还是64位的十分重要,因为你在做很多事情的时候都需要这个信息。在这篇文章里,我们会讨论五种检测你的Linux系统是32位还是64位的方法。 检测你的 Linux 是32位还是64位的 请注意文中的这些方法是在 Ubuntu 13.10 平台测试. 1. 执行‘uname -a’ 命令 最常见的一个测试方法是运行 uname command 命令。 例如,在我的系统里,它显示了以下信息: $ uname -a Linux ubuntu 3.11.0-12-generic #19-Ubuntu SMP Wed Oct 9 16:12:00 UTC 2013 i686 athlon… read more »

Python解析HTML表格的方法

Python解析HTML表格是如何来实现的呢?下面的内容将会通过具体的实例来演示Python解析HTML表格的实现方法及相关技巧: 本文实例讲述了Python实现简单HTML表格解析的方法。分享给大家供大家参考。具体分析如下: 这里依赖libxml2dom,确保首先安装!导入到你的脚步并调用parse_tables() 函数。 1. source = a string containing the source code you can pass in just the table or the entire page code 2. headers = a list of ints OR a list… read more »

Linux:如何在 CentOS 中设置 NTP 服务器

网络时间协议(NTP)用来同步网络上不同主机的系统时间。你管理的所有主机都可以和一个指定的被称为 NTP 服务器的时间服务器同步它们的时间。而另一方面,一个 NTP 服务器会将它的时间和任意公共 NTP 服务器,或者你选定的服务器同步。由 NTP 管理的所有系统时钟都会同步精确到毫秒级。 在公司环境中,如果他们不想为 NTP 传输打开防火墙,就有必要设置一个内部 NTP 服务器,然后让员工使用内部服务器而不是公共 NTP 服务器。在这个指南中,我们会介绍如何将一个 CentOS 系统配置为 NTP 服务器。在介绍详细内容之前,让我们先来简单了解一下 NTP 的概念。 为什么我们需要 NTP? 由于制造工艺多种多样,所有的(非原子)时钟并不按照完全一致的速度行走。有一些时钟走的比较快而有一些走的比较慢。因此经过很长一段时间以后,一个时钟的时间慢慢的和其它的发生偏移,这就是常说的 “时钟漂移” 或 “时间漂移”。为了将时钟漂移的影响最小化,使用 NTP 的主机应该周期性地和指定的 NTP 服务器交互以保持它们的时钟同步。 在不同的主机之间进行时间同步对于计划备份、入侵检测记录、分布式任务调度或者事务订单管理来说是很重要的事情。它甚至应该作为日常任务的一部分。 NTP 的层次结构… read more »

CentOS 6.5: 如何配置双网卡绑定

在centos 6.5 系统下,如何来配置双网卡的绑定呢,当一个网卡down掉后,另一个网卡会自动起作用,这样就不影响系统的正常通讯。 1.首先通过ifconfig -a | grep eth 来查看系统下有哪些网络接口卡。 [cc lang=”php”] [[email protected] Desktop]$ ifconfig | grep eth eth0 Link encap:Ethernet HWaddr 00:0C:29:53:85:56 eth1 Link encap:Ethernet HWaddr 00:0C:29:53:85:60 [/code] 2. 编辑”/etc/sysconfig/network-scripts/ifcfg-eth0″ 配置文件,修改下面的内容: [cc lang=”php”] DEVICE=eth0 ONBOOT=yes… read more »

哪家互联网公司压榨员工最严重?

富 士康、三星、华为、格力,这些耳熟能详的知名企业,也曾成为雇佣童工、过劳死、血汗工厂的代名词。如今,随着互联网行业竞争的白热化,越来越多的业内人开 始抱怨有关于职场中遇到的种种不公:没有加班费;管理混乱;工作环境恶劣;升职空间被卡死,各种口水满天飞。女人被当成男人用,男人被当牲口用;女汉纸、 壮丁,也成了互联网公司职员相互调侃的口头语。 总之,领导和员工的关系就好像天平的两端,一不小心就会失去平衡。以下文字摘自知乎网友的各种吐槽爆料: 小米:变相让员工推销 用户1:宅青 小米是血汗工厂,一开始一周六天朝十晚十,后来勉强改成一周五天,但是如果周六要上班,都是直接邮件一句话通知。绝无加班补助这种东西。像@王子君 这样做营销的估计一周休息时间更少,经常看他三更半夜在抽烟,做方案。在小米就是用青春奉献小米的明天。 讲 个段子。前年小米年会,有个许愿树环节,全体员工写个愿望,每个合伙人都抽一个愿望帮助满足。本以为大家会写出国旅游,苹果电脑啥的。结果全场抽奖只有一 两个人是物质愿望,其余全部是希望周末不上班,晚上不加班。可见民怨。现场好不尴尬,没有一个合伙人敢承诺未来可以一天不上十二个小时。到最后主持人都挂 不住了,但凡遇到不加班的愿望,统统作废,重抽。结果,呵呵,越废越多,整个环节雷总脸都绿了。 在小米工作两年,身体状况每况愈下,面临婚事,唯独跳槽过的更轻松。我相信离开小米的有绝大一部分是因为累。 第 二个原因是抠门。所有领导都擅长画大饼。理想很大很忽悠,刚到公司说好好干今后有期权,结果期权干满五年才有,然后又承诺会有小米公寓,前1000员工免 费入住,好么现在大楼选址还没选。管理层也是精明到家的人,给员工奖励无非就是自家产品和友商产品,变相让员工推销。到头来,人人都热血沸腾而来,未必能 共苦走到最后。 华为:要员工自愿放弃休假等法定假期 用户2:匿名用户 冒着跑题的风险也要来黑一下华为,算不上互联网公司,但是,压榨员工的伎俩让人无语。还是匿了吧 华为待遇,跟互联网公司相比,表面上看是差不多的,但实际上要差很多。 1、奋斗者协议。这个最变态,要员工自己申请:自愿放弃年休假等法定假期。(是感觉贱贱的,但如果不申请,呵呵。。。。) 2、不论什么请假方式(甚至病假)超过一定时间,将会影响到你的考评。这个就很严重,要知道,他的工资并不高,要是影响了你的奖金,你这个请假就好值钱了啊。 3、根据部门不同,若是倒霉,你的部门加班木有加班费,那就惨了,美其名曰“调休”,但是,想请假不给你批啊!批了也要影响你的考评啊!影响了就木有钱了啊!相当于加了班还扣钱啊!所以,一般人都尽量不请假,你辛辛苦苦赚钱是为啥???给别人花吧。 4、工资低,靠年终奖,年终奖还要推迟到年中才发,其中奥妙,大家想必都明白的。太坑爹了。 亚马逊:管理混乱,人事变动大 用户3:白霄 北美码农说一句,我知道的米帝大互联网公司里或者it公司比较狠的,以身边同学的例子(基本都是待了不到一年就想跳槽了),自然是amazon无疑了。 以下评论来自网络,但和我知道的基本相符 1、不给办绿卡。这个最扯淡,也是我认为2年内一定要离开亚马逊的理由。有例外,我也知道有些人可以办,但是太麻烦、太随机,还不如做题跳槽升工资简单明快。 2、传统部门升级慢,Sde I 到 II… read more »

Linux/Centos:如何安装/配置Nginx

Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器。Nginx是由俄罗斯人 Igor Sysoev为俄罗斯访问量第二的 Rambler.ru站点开发的,它已经在该站点运行超过两年半了。Igor Sysoev在建立的项目时,使用基于BSD许可。下面我们来看看如何在centos系统里安装并配置Nginx. 1.在nginx官方网站下载一个rpm包,下载地址是:http://nginx.org/en/download.html 2.安装这个rpm包 安装过程中会出现错误提示: warning: nginx-release-centos-6-0.el6.ngx.noarch.rpm: Header V4 RSA/SHA1 Signature, key ID 7bd9bf62: NOKEY 不知道干什么的,忽略即可 3.开始正式安装nginx 会显示一大堆信息,问你ok不ok啊:Is this ok [y/N]: 输入y,屏幕滚了一会之后就安装完毕,最后提示“Complete!”就是安完了。 4.nginx的几个默认目录 whereis nginx nginx: /usr/sbin/nginx /etc/nginx /usr/share/nginx 1… read more »

Linux/Centos:如何安装GCC(C和C++编译器)

在linux系统下或者Centos7/Red Hat7企业版系统里如何安装gnu下的GCC编译器以及相关的工具呢?(autoconf,automake,flex,c++ compiler) 你需要安装包含下面的软件包的基本开发工具环境,那么就会自动安装好我们想要装gcc编译器:     autoconf   automake   binutils     bison     flex     gcc     gcc-c++     gettext     libtool     make     patch     pkgconfig     redhat-rpm-config     rpm-build     rpm-sign 输入下面的命令安装基本工具开发包:… read more »

程序员必看的十大电影

不同的行业领域中很多时候都分享着共同的思想和理念。比如,大量的计算机编程中涉及到的概念都被运用到了电影里。有些概念出现在电影里 后变得如此之酷,甚至反过来能帮助我们程序员更好的理解这些概念。下面就是我最喜欢的10大电影,它们都在某方便帮助了我理解编程中的某些概念。 1. 骇客帝国(1999) 概念:在线/离线,递归,循环,矩阵等。 这部具有革命性的电影。一种文明的结束是另一种文明的开始。它成了后来的很多电影效仿的对象。 2. 环形使者(2012) 概念:循环 如果生活变成了一种无休无止的循环,如何终止它? 3. 创:战记(2010) 概念:虚拟和现实 很多到了年纪的计算机科学家都会承认,他们对计算机计算或战争游戏的热爱来自一种憧憬。 4. 遇见未来(2007) 概念:递归 这部电影运用到了计算机里递归的概念,特别是最后的搜索那部分,那是在一个树数据上进行递归搜索。 5. 死神来了 1, 2, 3, 4, 5 概念: if else jump 6. 盗梦空间(2010) 概念:虚拟机,嵌套 盗梦空间这部影片看的糊里糊涂,主要是里面的梦境嵌套的太多了,人物在各个梦境里来回穿越,弄的我不知道究竟他们在第几层梦境。关于这部电影一则笑话却非常的有意思,如果你是个真正的程序员,你一定会哈哈大笑: 盗梦空间的主要思想是:如果你在虚拟机(VM)里的虚拟机里的虚拟机里安装了一个虚拟机,那所有的东西都会变的死慢。 7…. read more »

程序员赚钱致富的6种方法

我认识一个朋友,也是程序员出身,他在一家还不错的外企上班,每个月工资收入也就差不多15K,五年的工作经验了,在他面前,我算是小弟。那天我们几个朋友一起打完球就去附近的饭馆吃饭,环境还不错,于是就边吃边聊工作、赚钱的事情。 那天了解到,他不仅拿着15K的高薪,业余还有着更高的收入,从聊天中,我总结了几点程序员赚钱的技巧,分享给大家,也许你可以参考一下,哪天发财了记得回到这篇文章中来赞一下。 一、Google Adsense 利用Adsense可以将广告发布到你的网站上去,通过访客点击广告来赚取佣金。这似乎是一个很不错的主意,如果你有一个不错的创意,写一个网站对于程序员的你应该不难,网站放上Adsense广告,推广、引流、收美金。 二、Android App交易市场收入 首先,他的Android应用是免费的,他并不是靠卖App来赚钱,而是通过向App中投放广告来赚取佣金的。如果你对Android技术非常熟悉,或者你的工作就是做Android开发,那么为什么不自己开发一个应用放到Android市场,为自己创造另一份收入。 三、参加一些开发者大赛 这是一种最实在的方法了,拿奖金,只赚不赔,不过前提是你得有足够的实力。他参加过Google的Android开发者大赛,很得瑟的跟我们说那时 候他赢得了2000美金,尽管不是很多,但从中也可以学到不少知识,至少,通过学习,他可以自己开发Android应用来赚取广告费了。 四、承接一些项目 当然这要花费你很大一部分时间,承接时你要考虑时间成本,至少这些时间要和你的工资相当。个人不怎么推荐这种方法,有时候周期会很长,很容易丧失积极性,不过也算是一种方法。 五、刷机、越狱 现在都是智能手机,有些用久了,卡了,像电脑一样要重装系统,一些小白有教程都搞不定,这时候你可以借此开展刷机业务。还有iOS的越狱,这个需要你对iOS的操作非常熟悉。你可以将此业务挂到淘宝上,帮助买家实现他们要的功能。 六、做黑客 黑入银行,盗取前女友现任老公的所有钱,哈哈,开玩笑了。不过,做一名优秀的计算机黑客确实可以帮你赚取很大一笔收入,比如帮助一些企业提高计算机网络的安全性、做一些抵御攻击的积极措施等。 这是我们讨论结果的几个要点,因人而异,如果你要更好的建议,欢迎在评论中告诉我们。 (原文地址)

Linux:如何通过命令行来设置日期和时间

在linux下如何设置日期和时间呢?假如你的linux系统没有安装GUI,而只能通过ssh或者telnet登陆到linux操作系统里,如何在linux操作系统下设置日期呢? 使用date命令来显示当前的日期和时间或者设置系统日期和时间,如果系统的时间是错误的,那么可以使用date命令来重新设置。 你必须以root用户来执行date命令。 linux显示当前的日期和时间 输入下面的命令: [[email protected] sh]# date Wed Jun  4 21:49:35 CST 2014 [[email protected] sh]# Linux显示硬件时钟 输入下面的hwclock命令来读取硬件时钟,并在屏幕上显示时间: [email protected] sh]# hwclock -r Wed 04 Jun 2014 09:50:00 PM CST  -0.334125 seconds 或者 [[email protected] sh]# hwclock… read more »

ubuntu下中文输入法的安装–fcitx

在自己电脑上装了ubuntu系统以来 一直没有怎么用过 今天打开电脑想着配置一下环境 在查资料的时候难免的要输入中文然后自己弄了一下中文输入法的安装 我安装的是fcitx小企鹅输入法 下面介绍一下安装的过程。。。。。 1.打开终端 输入 sudo add-apt-repository ppa:wengxt/fcitx-nightly 2.按ENTER键确认安装 3.接着输入 sudo apt-get update 4.sudo apt-get install fcitx fcitx-config-gtk fcitx-sunpinyin 5:安装过程中有Y/N选择的都输入Y,然后按回车继续。 6:继续输入下面命令安装其它码表。y继续 sudo apt-get install fcitx-table-all 7:安装好后假如系统内有多个输入法的话,则输入下面命令,把fcitx设置为默认输入法,一般都不用输入。(网上查询到的有这一步 但是我没做) im-switch -s fcitx -z default… read more »

OpenBSD:如何挂载USB闪存盘/移动硬盘

在OpenBSD 操作系统下,如何在命令行下挂载和使用USB闪存盘或者移动硬盘呢?OpenBSD系统支持通过模拟SCSI接口的方式来使用USB存储设备(优盘或者移动硬盘),你需要以root用户的方式登陆OpenBSD系统来挂载USB盘。 先获取USB设备在OpenBSD系统上的名字 首先要在USB接口上插入你的USB盘,然后输入下面的命令来显示设备名: #sysctl hw.disknames 示例输出: hw.disknames=wd0:3af96a8b7d621ab2,cd0:,sd0: 获取更多的关于sd0的信息,输入下面的命令: #dmesg | grep sd0 命令输出如下: sd0 at scsibus1 targ 1 lun 0:  SCSI2 0/direct removable sd0: 1956MB, 512 bytes/sector, 4005888 sectors sd0 detached sd0 at scsibus1… read more »

解决”/bin/dbus-launch terminated abnormally without any error message“错误信息的问题

当在redhat或者centos系统下运行下面的命令的时候会遇到下面的错误信息,百度之后发下是redhat/centos的bug,那么如何来修复呢? ssh -X firefox & 错误信息为: [cc lang=”php”] **error**: Failed to contact configuration server; some possible causes are that you need to enable TCP/IP networking for ORBit, or you have stale NFS locks due to… read more »

Grep:grep显示匹配到的行数目

我们如何知道匹配某个字符串或者单词在文件或者标准输入里总共有多少行?我们如何获取匹配到的行的数目呢? 你需要使用grep命令的-c 或者–count选项来控制grep命令的输出,让grep命令的输出只显示匹配到的行数: [[email protected] ~]# grep -c user1 /etc/passwd 2 [[email protected] ~]# grep –count user1 /etc/passwd 2 [[email protected] ~]# grep user1 /etc/passwd user1:x:501:501::/home/user1:/bin/bash user1add:x:503:503::/home/user1add:/bin/bash [[email protected] ~]# 如果使用-v 或者–invert-match 选项,可以显示不匹配的行的数目: [[email protected] ~]# grep -cv user1 /etc/passwd… read more »

Grep:grep匹配行所在文件的文件名

当我们在大量文件中使用grep命令来查找匹配行,有时候可能需要只显示匹配行所在文件的文件名,那么如何才能只显示匹配行所在文件的文件名呢? 普通的grep命令查找: [[email protected] ~]# grep user1 /etc/* /etc/group:user1:x:501: /etc/group:user1add:x:503: /etc/group-:user1:x:501: /etc/group-:user1add:x:503: /etc/gshadow:user1:!:: /etc/gshadow:user1add:!:: /etc/gshadow-:user1:!:: /etc/gshadow-:user1add:!:: /etc/passwd:user1:x:501:501::/home/user1:/bin/bash /etc/passwd:user1add:x:503:503::/home/user1add:/bin/bash /etc/passwd-:user1:x:501:501::/home/user1:/bin/bash /etc/passwd-:user1add:x:503:503::/home/user1add:/bin/bash /etc/shadow:user1:!!:16176:0:99999:7::: /etc/shadow:user1add:!!:16176:0:99999:7::: /etc/shadow-:user1:!!:16176:0:99999:7::: /etc/shadow-:user1add:!!:16176:0:99999:7::: [[email protected] ~]# 从上面的输出结果,可以看出来第一个字段是文件名,在grep命令里,可以使用-l选项来控制grep命令的输出,只显示匹配行的文件名。 [[email protected] ~]# grep -l user1 /etc/* /etc/group /etc/group- /etc/gshadow… read more »

Sidebar