Articles of linux

我应该使用ec2作为文件服务器吗?

我需要能够在多个EC2应用程序服务器上共享用户上传的内容。 我已经将rsync,挂载的NFS和S3看作是几乎可以实时共享这些数据的潜在选项。 上传和下载的用户文件几乎总是在1-10MB之间。 一些访问了很多,有些只是一次,然后删除。 我最新的方法是严格地将EC2实例作为文件服务器启动,与应用程序服务器分开。 使用此选项,用户可以下载文件,并将其连接到应用程序服务器之一,该应用程序服务器使用有关要下载的文件的数据查询数据库。 然后提示用户下载,并将它们连接到文件服务器进行下载。 我觉得这个选项会比我的其他选项更快。 我看到唯一的缺点是我无法自动调整向上/向下文件服务器。 然而,我可以放大并在数据库中创build一个列,指出文件位于哪个文件服务器上。 这是一个好方法还是我错过了什么? 另外,根据服务器规格和文件在1-10MB之间来确定在文件服务器上可以发生多less并发上传/下载,或者从负载testing中最好地确定什么是一种好方法? 同样在扩展方面,如果一个文件服务器上的一个特定文件变得非常受欢迎,这会是一个问题吗? 会用CDN解决这个问题吗?

DHCPD清理租约在客户端断开连接

有没有办法强制ISC DHCPD触发客户端断开后过期或释放静态租赁权? 我想在客户端连接(“提交”DHCPD事件)和断开连接(“到期”或“释放”DHCPD事件)后立即触发脚本。 虽然第一个作品像魅力,后者永远不会触发。 任何build议? 编辑 :configurationsnipplet(与testing脚本): subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.40 192.168.1.49; on commit { set ip = binary-to-ascii (10, 8, ".", leased-address); execute ("/usr/local/bin/dhcp-test", "commit", ip); } on release { set ip = binary-to-ascii (10, 8, ".", leased-address); execute ("/usr/local/bin/dhcp-test", "release", ip); } on expiry { set ip = binary-to-ascii (10, […]

如何在不同的公共networking上结合来自不同Linux服务器的存储

我有每个2 TB的专用主机服务器,(其中7个)。 现在我想结合他们的未使用的空间,并将它们融合到其他服务器。 请注意,服务器具有公共networking。 find解决scheme,如ceph或xtreemfs,但不知道如果实际上提供我所需要的。 任何提示? 实际上,整个想法是将来自多个服务器的存储组合成一个posix文件系统。 在公网上面的ISCSI是什么?

virt-install忽略vnc端口/ listen?

我试图在远程主机上创buildkvm机器。 主机正在运行debiantesting。 有没有使用这个命令: virt-install –name debian-test \ –os-type=linux \ –os-variant=debianwheezy \ –cdrom /media/media/software/iso/debian-testing-amd64-netinst-2014-01-16.iso \ –graphics vnc,listen=0.0.0.0,port=20001 \ –disk pool=default,format=raw,size=20 \ –ram 2048 \ –vcpus=2 \ –network bridge=virbr0 \ –hvm \ –virt-type=kvm 但是当它被创build时,它会监听: =# virsh domdisplay debian-test vnc://localhost:14101 当我创buildport = 40001时,它正在监听端口34101,所以它看起来像端口被视为某种偏移?! 在任何方面 – 听没有被使用,能够从本地连接是不是我想要的。 我究竟做错了什么?

如何在AWS服务器上使用nodejs和express来正确设置ImageMagick

所以基本上我一直在努力争取一段时间imagemagick和或graphicsmagick正常运行与我的节点应用程序,到目前为止,我遵循从http://www.imagemagick.org/script/install-source.php安装源#unix 。 我的服务器上的细节包括 -nodejs -mongodb -mongoose -imagemagick -graphicsmagick -express 看起来安装进行得很顺利,但是当我通过gm( https://npmjs.org/package/gm )通过节点运行代码时,我没有得到任何错误,但文件没有被写入,我会发布图像发布function的示例代码。 var gm = require('./gm'); var newRoute = '/some/user/url/'; var files = req.files; gm(files.file.path).resize(1126).compress('JPEG').quality(quality) .write(newRoute,function(err){ //do some stuff to save changes on db }); 现在,这个function目前在我的本地设备上完美运行,但是在服务器上它不会让步,任何人都有什么想法? 应用程序创build文件夹和文件夹模式应该是0777,虽然当我用sshlogin,似乎他们可能是0755,虽然我不知道这是所有与权限做,因为我有mp3上传工作正常。 这是当imagemagick和graphicsmagick进来发挥这种情况发生。 有任何想法吗?

将所有分区放入LVM是一种好的做法吗?

我想知道什么是有关分区策略的最佳实践,特别是涉及到逻辑卷pipe理器。 将整个分区放入LVM还是将其用于除/之外的其他分区会更好? 有些同事告诉我,最好不要把rootfs放入LVM,因为如果我们遇到了lvm问题,恢复起来可能会更容易一些。 我知道LVM有其优点(灵活性…)和缺点,但将所有内容都放入LVM是一种很好的做法吗? 有一些例外吗? 先谢谢你,

Freeradius:根据Nas-IP地址将用户分配给用户

我想知道有没有人可以帮助我。 目标是根据他们连接的AP为不同的用户分配不同的IP地址。 我不能静态设置,因为用户将旅行,并通过不同的ap结束连接。 所以我想做一个检查,看看我是否可以匹配nas ip,然后将该用户分配给一个组,然后该组将分配正确的IP池。 我已经做了相当多的研究,它似乎像将其添加到radgroupcheck表一样简单。 像这样: id | groupname | attribute | value | op —-+———–+—————-+————+—- 1 | Group1 | Nas-IP-Address | xxxx | == 4 | Group1 | Pool-Name | POOL1 | := 然而在半径-X我甚至没有看到它试图检查组。 它似乎检查radusergroup表,但没有任何内容,因为我需要根据位置dynamic设置用户组。 任何帮助,将不胜感激。 谢谢 抢

对Linux用户使用HTTP和存储库授权的正确的Subversion权限

对不起,这个“愚蠢”的问题,但我真的无法find一个在互联网上的解决scheme。 请帮帮我。 我正在Linux服务器上使用Subversion来控制版本控制我正在维护的一个网站项目的文件。 这是我的configuration: 项目文件夹(服务器上的存储库的工作副本,为了访问项目并使用浏览器查看网站 – Apache指向DocumentRoot的这个目录): /var/projects/prj 资源库文件夹: /var/repo/prjrepo 当我安装SVN( apt-get install subversion libapache2-svn )时,它既没有创build用户subversion也没有创build组subversion。 我不明白为什么。 我使用Windows上的TortoiseSVN来检出/更新/提交。 我使用HTTP连接到授权用户列表的存储库: http://1.2.3.4/svn/prjrepo 授权到存储库的用户列表保存在一个htpasswd文件中,其中包含用户列表和他们的MD5密码。 当然Apache运行www数据。 prj文件夹由root:root拥有,除了www-data需要写入的目录(例如file upload)以外,其他文件夹只能访问这些文件。 存储库文件夹是由用户和组创build的svn:svn,但也许这是无用的。 用户和组的权限为rwx,其他权限则为空。 另外,我在所有文件夹上强制g + s,这样svn组将始终是所有新文件的所有者。 问题是,当我提交一个文件到存储库,它说,由于“权限被拒绝”,它失败了。 我可以理解为什么:存储库文件夹由svn:svn拥有,但是当提交时,Tortoise向服务器发出HTTP请求。 HTTP请求以www-data的forms运行,当然,这些人对仓库没有权限。 我还添加了一个提交后的操作,以便在每次提交时更新工作副本(prj文件夹)。 如果我将存储库的所有者组更改为www-data,则Tortoise能够提交,但当然由于www-data无法写入prj文件夹下的所有目录和文件,所以提交后的操作会发生错误。 这是正确的(万维网 – 数据不能写文件,它只能读 – 这是阿帕奇,这是网站…)。 所以:我真的不知道如何正确configuration文件夹的权限,以使一切正常。 请记住,www数据不能写访问prj,因为它只是读取这些文件(例如一些文件夹,如用于file upload的文件夹)。 另一个问题:现在Apache被configuration为只允许那些为了这个目的而创build的特定htpasswd文件中定义的用户访问存储库(见上文)。 有没有什么办法让一些LINUX用户可以访问版本库,而不需要为版本库访问定义新的用户呢? 那可能吗? 怎么样?

Docker:如何分区大型服务器?

所以在我的生产环境中,我有一个带有8个CPU和40G内存的戴尔XS23机架,内含vmware esxi。 我之前分区的方式是2个API服务器(四核,8gig ram)2个数据库服务器相同的规格,等等。 这样做的理由是具有负载平衡以及复制,故障转移等,但都运行在单一硬件上。 正如你可以看到你添加的虚拟机越多,显然在实际的操作系统上会浪费更多的磁盘/ CPU / RAM,所以在这种情况下,Docker会非常有利。 现在我的问题是,我应该只创build一个运行所有Docker容器的大型服务器,还是应该有我的虚拟机,并在其中运行docker(因为Dockertypes的目的不同):由于Docker相当新颖,在网上find很多文档我正在诉诸ServerFault社区的一些想法。 谢谢!

服务器负载平均 达到16-20,但所有资源使用率低于90%?

正如您在下面共享的镜像中看到的那样,服务器负载达到峰值将近20,但是CPU,RAM,磁盘IO和networkingI / O仍然处于满负荷状态。 我的问题是: 1)。 什么导致了负载? 2)。 忽略这些高负载尖峰是否正常正常?