服务器管理员

系统和网络管理员的问答

4
ramfs和tmpfs之间的性能差异
我需要为大约10 GB的数据设置一个内存中存储系统,其中包含许多100 kb的单个文件(图像)。会有很多读取和相当定期的写入(添加新文件,删除一些旧文件)。 现在,我知道tmpfs的行为类似于常规文件系统,例如,您可以使用df检查可用空间,这是一个不错的功能。但是,我对ramfs是否会在IO操作速度方面提供一些优势感兴趣。我知道使用ramfs时无法控制消耗的内存大小,并且如果系统完全消耗了可用的RAM,则我的系统可以挂起,但是在这种情况下这不是问题。 总而言之,我感兴趣: -性能方面,速度更快:ramfs或tmpfs(可能是为什么)?-tmpfs 何时使用交换空间?它会把已经保存的数据移到交换区(为正在运行的其他程序释放RAM)还是只有新数据(如果那时没有剩余的RAM)?

2
Docker卷备份和还原
我正在使用Docker在CentOS 6.4服务器上部署一些服务,并且试图弄清楚如何正确备份它们生成的数据。 例如,服务之一是Web应用程序,用户可以在其中上传文件。对于此容器,我有一个/files要备份的卷。主机挂载看起来有些皱眉,因为这种挂载绝不是可移植的-如本博文和docker卷的文档所述。 从同一篇博客文章中我知道我不需要主机挂载来访问卷中的文件,我可以使用它docker inspect来查找文件在哪里。 但这是我的问题:我正在考虑仅备份构建容器和与其关联的卷所需的dockerfile。如果可能不得不从备份中还原所有内容,那么我将如何知道哪个卷目录对应于哪个容器?重建容器会导致ID和卷路径发生更改,因此我需要一些其他信息来匹配它们。我还应该备份什么(如果有的话)以便能够真正还原所有内容?
23 backup  docker 

1
Apache记录其他用户的读取权限
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使其成为服务器故障的主题。 6年前关闭。 我们有几个维护系统的开发人员,我希望他们能够轻松读取/ var / log / httpd中的日志文件,而无需root用户访问权限。我为“其他”用户设置了读取权限,但是当我在日志文件上运行tail时,得到的权限被拒绝: [root@ourserver httpd]# chmod -R go+r /var/log/httpd [root@ourserver httpd]# ls -la drwxr--r-- 13 root root 4096 Oct 25 03:31 . drwxr-xr-x. 6 root root 4096 Oct 20 03:24 .. drwxr-xr-x 2 root root 4096 Oct 20 03:24 oursite.com drwxr-xr-x 2 root …


7
针对开发人员的Apple环境的备份策略?
有趣的是,结构化公司环境与更多开发人员驱动/启动环境之间存在技术差异。当我管理在DevOps商店中看到的越来越多的Apple笔记本电脑时,我认为理所当然的某些Microsoft技术(VSS,文件夹重定向等)根本不可用。 我对一组30-40台Apple笔记本电脑的集中式和自动备份策略感兴趣... 假设这些是公司拥有的机器(相对于BYOD),通常该如何安全地进行? 尽管Apple具有Time Machine,但它专用于单个计算机备份,并且似乎不能在组设置中可靠地工作。这些工作站的另一个问题是在开发人员的系统上存在Vagrant / Virtual Box VM。除非将VM从备份集中排除,否则Time Machine和虚拟机通常无法正常工作。 我想要一个基于推送的备份过程,其中包含一些灵活的计划选项。 我知道如何处理后端存储,但是我不确定需要向客户端系统提供什么内容。 由于此处数据的性质,基于云的备份可能不是可行的选择。 关于在环境中如何处理此问题的任何建议将不胜感激。 编辑:虚拟机备份不再重要。它们可以从流程和计划中排除。


2
使用X-Forwarded-For标头的nginx速率限制
我正在研究使用nginx的HttpLimitReqModule进行速率限制。但是,请求全部来自同一IP(负载平衡器),标头中包含真实IP地址。 有没有一种方法可以使nginx速率限制基于X-Forwarded-For标题中的ip而不是源的ip?

4
在bash中并行执行curl请求
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 从bash脚本执行5个curl请求的最佳方法是什么parallel?由于性能原因,我无法串行运行它们。
23 curl  wget  multi-core  smp 

3
流浪汉:访客中的互联网连接速度缓慢
我正在尝试建立一个无业游民。主机是Ubuntu 12.10。这是我的流浪文件: Vagrant::Config.run do |config| config.vm.share_folder("v-root", "/vagrant", ".", :nfs => true) config.vm.network :bridged, :bridge => "eth0" config.vm.define "restserver" do |chefs_config| chefs_config.vm.box = "precise64" chefs_config.vm.box_url = "http://files.vagrantup.com/precise64.box" chefs_config.vm.host_name = "restserver" chefs_config.vm.network :hostonly, "192.168.20.50" chefs_config.vm.forward_port 80, 8080 config.vm.provision :chef_solo do |chef| chef.log_level = :debug chef.cookbooks_path = "cookbooks" chef.run_list.clear chef.add_recipe "apt" chef.add_recipe "base" …

8
Apache2代理超时
我有根据以下配置配置的具有PHP + PHP-FPM的Apache2: http://wiki.apache.org/httpd/PHP-FPM 我正在编写一个脚本,该脚本将需要很长时间才能在内部Vhost上执行,但是随着时间的推移,如果脚本在30秒内执行完毕,一切都将完美运行。 我的apache日志告诉我: [Wed Apr 17 21:57:23.075175 2013] [proxy_fcgi:error] [pid 9263:tid 140530454267648] (70007)The timeout specified has expired: [client 58.169.202.172:49017] AH01075: Error dispatching request to :, referer: 尝试运行脚本时503 Service Unavailable,恰好在30秒的执行时间后给出了a 。从逻辑上讲,这意味着我将超时指令或设置设置为30秒,但是我将这些存储在Vhost的配置中: Timeout 600 <IfModule proxy_module> ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9001/home/pyrokinetiq/scripts/$1 timeout=600 ProxyTimeout 600 </IfModule> (php-fpm对我来说在9001端口上运行) 我也曾尝试放置Timeout,并ProxyTimeout在httpd.conf与无差异。 似乎还有一个特定于的超时设置mod_proxy_fcgi,但我找不到。我从官方tarball安装了Apache2 httpd,似乎所有mod均未附带任何配置文件。 如果有人能指出我正确的方向,将不胜感激。

3
可以使Robocopy跳过打开的文件吗?
我们正在使用Robocopy重新分发通过FTP到达放置文件夹中的文件。理想情况下,如果文件仍在使用FTPd,我们希望Robocopy将文件保留下来。 尝试了各种开关后,Robocopy仍会复制打开的文件。它不会删除它们,因此FTP继续不受影响。但是,我们最终将截断的文件分发到它们的目的地。 可以使Robocopy跳过打开的文件吗? 也许有比Robocopy更适合该任务的东西?


4
如何在Linux中发生故障时自动重新启动服务
在Windows上,您可以设置服务失败的情况。是否有在Linux(特别是CentOS)上实现相同功能的标准方法? 我的问题的更大一部分是:如何处理未打开的套接字-例如在TIME_WAIT,FIN_WAIT1等状态下。 如果正在开发的服务崩溃,则必须等待套接字清除或更改监听端口,然后才能手动重新启动它。 谢谢你的帮助。
23 linux  service  socket 

1
Amazon AWS EC2微实例上的Python CGI-入门指南!
此问题已从堆栈溢出迁移,因为可以在服务器故障时回答。 迁移 8年前。 如何使light2d的EC2微型实例提供CGI脚本?例如Python CGI? 嗯,花了半天时间,但是我已经使用lighttpd服务器在免费的Amazon AWS EC2微实例上运行了Python cgi。我认为这将帮助我的新手将所有步骤都放在一个位置。通过以下简单的步骤,只需15分钟即可完成设置! 对于阅读本文的经验丰富的用户,我的问题是:我所做的工作是否存在任何安全缺陷?(请参阅文件和目录权限。) 步骤1:启动您的EC2实例并ssh进入它。 [显然,您需要注册Amazon EC2并将密钥对保存到* .pem文件。正如亚马逊告诉您的操作方法,我不会赘述。] 登录您的AWS账户并启动您的EC2实例。网络上有关于此操作的教程。请注意,Amazon提供给您的默认实例大小很小。这不是“微型”的,所以会花钱。请务必手动选择“微型”。(微型实例仅在第一年是免费的...) 查找正在运行的实例的公共DNS代码。为此,请在信息中心顶部窗格中单击实例,最终您将在底部窗格中看到“ Public DNS”字段。(您可能需要摆弄一些。)公共DNS看起来像: ec2-174-129-110-23.compute-1.amazonaws.com 启动Unix控制台程序。(在Max OS X上,它称为Terminal,位于“应用程序”->“实用程序”文件夹中。) cd到桌面系统上的目录,该目录具有* .pem文件,其中包含AWS密钥对。 使用以下命令将ssh转到您的EC2实例: ssh -i <<your *.pem filename>> ec2-user@<< Public DNS address >> 因此,对我来说,这是: ssh -i amzn_ec2_keypair.pem ec2-user@ec2-174-129-110-23.compute-1.amazonaws.com 您的EC2实例应允许您进入。 步骤2:将lighttpd下载到您的EC2实例。 要安装lighttpd,您将需要对EC2实例具有root访问权限。问题是:Amazon不允许您以root用户身份登录。(至少不是直接的。)但是有一种解决方法。输入以下命令: sudo /bin/bash 系统提示字符将从$更改为#。在整个过程的最后一步之前,我们不会从“ sudo”退出。 安装lighttpd应用程序(对我来说是1.4.28-1.3.amzn1版本): yum install …

4
在多台计算机上使用相同的SSH私钥
我有一个Github存储库,我想从两台不同的Linux机器上进行访问。 对于第一台机器,我按照Github的说明生成SSH密钥,并将生成的公共密钥添加到Github。该客户端工作正常。 对于第二个客户端,我/home/{user}/.ssh/id_rsa从第一个客户端复制了文件。我以为这可能是我所要做的,但是当我尝试连接时,我得到“权限被拒绝(公钥)”。 我想念什么?
23 linux  ssh  github 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.