服务器管理员

系统和网络管理员的问答

2
零的tar填充
在bz2压缩文件上执行tar时,遇到以下错误, tar:dump.sql:文件缩小了19573448400字节;用零填充 谁能指出是什么原因导致此问题? 谢谢。
10 linux  tar 


2
避免通过GlusterFS和Windows使用SPOFS
我们有一个用于处理功能的GlusterFS集群。我们希望将Windows集成到其中,但是在解决如何避免单点故障方面遇到了一些麻烦,单点故障是为GlusterFS卷提供服务的Samba服务器。 我们的文件流如下所示: 文件由Linux处理节点读取。 文件已处理。 完成后,结果(可能很小,可能会很大)被写回到GlusterFS卷。 结果可以改为写入数据库,也可以包括多个大小不同的文件。 处理节点从队列和GOTO中提取另一个作业。 Gluster很棒,因为它提供了分布式卷以及即时复制。灾难恢复能力很好!我们喜欢它。 但是,由于Windows没有本地GlusterFS客户端,因此我们需要某种方式使基于Windows的处理节点以类似弹性的方式与文件存储进行交互。该GlusterFS文档指出,为了提供Windows访问的方式是建立在顶部处的Samba服务器安装GlusterFS卷。这将导致如下文件流: 在我看来,这就像是单点故障。 一种选择是对Samba进行集群,但这似乎是基于不稳定的代码,因此无法运行。 所以我正在寻找另一种方法。 有关我们抛出的数据类型的一些关键细节: 原始文件大小可以从几KB到几十GB不等。 处理后的文件大小可以从几KB到GB到两个不等。 由于将包含的文件导入到文件存储中,因此某些过程(例如挖掘诸如.zip或.tar的存档文件)可能会导致进一步写入。 文件数可以达到百万分之十。 此工作负载不适用于“静态工作单位大小” Hadoop设置。同样,我们评估了S3样式的对象存储,但发现它们缺乏。 我们的应用程序是用Ruby自定义编写的,并且Windows节点上确实有一个Cygwin环境。这可能对我们有帮助。 我正在考虑的一个选项是在装有GlusterFS卷的服务器群集上的简单HTTP服务。由于我们使用Gluster所做的基本上是GET / PUT操作,因此似乎可以轻松地转换为基于HTTP的文件传输方法。将它们放在负载均衡器对的后面,Windows节点可以通过HTTP PUT进入其小小的心灵。 我不知道如何保持GlusterFS的一致性。HTTP代理层在处理节点报告已完成写操作与在GlusterFS卷上实际可见之间引入了足够的延迟,我担心稍后的处理阶段尝试提取文件不会找到它。我很确定使用direct-io-mode=enablemount-option会有所帮助,但是我不确定这是否足够。我还应该做些什么来提高一致性? 还是我应该完全追求另一种方法? 正如Tom在下面指出的那样,NFS是另一种选择。所以我进行了测试。由于上述文件具有我们需要保留的客户端提供的名称,并且可以使用任何语言出现,因此我们确实需要保留文件名。所以我用这些文件建立了一个目录: 当我从装有NFS客户端的Server 2008 R2系统中挂载它时,会得到一个目录列表,如下所示: 显然,不保留Unicode。所以NFS对我不起作用。

1
使用gitolite和nginx的HTTP上的git
我正在尝试设置一个服务器,在该服务器上可以使用HTTP(S)访问我的git repo。 我正在使用gitolite和nginx(以及用于Web界面的gitlab,但我怀疑这有什么区别)。 我整个下午都在搜索,我觉得很困。 我想我已经理解nginx需要fcgiwrap才能与gitolite一起使用,因此我尝试了几种配置,但没有一种可以使用。 我的存储库位于/ home / git / repositories。 这是我尝试过的三种nginx配置。 1: location ~ /git(/.*) { gzip off; root /usr/lib/git-core; fastcgi_pass unix:/var/run/fcgiwrap.socket; include /etc/nginx/fcgiwrap.conf; fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend; fastcgi_param DOCUMENT_ROOT /usr/lib/git-core/; fastcgi_param SCRIPT_NAME git-http-backend; fastcgi_param GIT_HTTP_EXPORT_ALL ""; fastcgi_param GIT_PROJECT_ROOT /home/git/repositories; fastcgi_param PATH_INFO $1; #fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; } 结果: > git …
10 nginx  git  gitolite  fcgi 

2
在Linux上使用'last'命令获取登录年份数据
在Solaris上,命令'fwtmp'提供wtmp日志中的年份信息。例如: host # /usr/lib/acct/fwtmp < /var/adm/wtmpx > tmp_wtmpx_file host # head -1 tmp_wtmpx_file user123 sshd 1258 7 0000 0000 1226072918 230489 0 29 host123.desktop.ourhost.com Fri Nov 7 09:48:38 2008 在Linux上,“ last”输出的数据没有年份信息,我似乎无法在Linux上找到类似于“ fwtmp”的实用程序来添加年份数据。“ lastlog”命令在输出中包括year,但仅查找passwd文件中的用户(默认情况下不针对ldap或其他用户数据库)。Linux上是否有实用程序可以输出年份以及“ last”中的其他数据?
10 linux  logging  last 

4
为什么我的Nginx别名不起作用?
我正在尝试设置一个别名,以便当有人访问时/phpmyadmin/,nginx将从而/home/phpmyadmin/不是通常的文档根目录中提取它。但是,每次我拉出URL时,它都会为所有未通过fastcgi拉出的项目提供404。fastcgi似乎工作正常,而其余的则不能。strace告诉我它正在尝试从普通文档的根目录中提取其他所有内容,但我不知道为什么。谁能提供一些见识? 这是我的配置的相关部分: location ~ ^/phpmyadmin/(.+\.php)$ { include fcgi.conf; fastcgi_index index.php; fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_param SCRIPT_FILENAME /home$fastcgi_script_name; } location /phpmyadmin { alias /home/phpmyadmin/; }
10 nginx  alias 

1
后缀系统“邮件名”
我正在安装postfix,但对于系统邮件名,我感到困惑。它有一个例子,如果系统上的邮件地址是“ foo@example.org”,则说使用“ example.org”,但是它也说邮件名应该是FQDN。 我的主机名是“ mercury”,我的FQDN是“ mercury.pacificseatheat.org”,那么我应该使用“ pacificseatheat.org”还是“ mercury.pacificseatheat.org”作为系统邮件名称? 谢谢
10 ubuntu  postfix 

2
无法连接到Vagrant Box上的Postgres-连接被拒绝?
首先,我是Vagrant和Postgres的新手。 我使用http://files.vagrantup.com/lucid32.box创建了Vagrant实例,没有任何麻烦。我能够运行vagrant up,vagrant ssh没有问题。 我按照说明进行了一个较小的更改,我安装了“ postgresql-8.4-postgis”软件包,而不是“ postgresql postgresql-contrib”。 我使用以下命令启动服务器: postgres@lucid32:/home/vagrant$ /etc/init.d/postgresql-8.4 start 在连接到无所事事的实例时,我可以用来psql无问题地连接到该实例。 在我的Vagrantfile中,我已经添加了: config.vm.forward_port 5432, 5432 但是当我尝试从本地主机运行psql时,我得到了: psql: could not connect to server: Connection refused Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"? 我确定我缺少一些简单的东西。有任何想法吗? 更新: 我找到了对此类问题的参考,并建议使用以下文章: psql -U postgres -h localhost 这样我得到: psql: server …

4
如何检查PHP是否使用Win32 API的UNICODE版本编译?
这与此堆栈溢出帖子有关: glob()在Windows上找不到多字节字符的文件名? 我在Windows上使用PHP和具有多字节字符的文件时遇到问题。这是我的测试用例: print_r(scandir('./uploads/')); print_r(glob('./uploads/*')); 远程UNIX服务器上的正确输出: Array ( [0] => . [1] => .. [2] => filename-äöü.jpg [3] => filename.jpg [4] => test이test.jpg [5] => имя файла.jpg [6] => פילענאַמע.jpg [7] => 文件名.jpg ) Array ( [0] => ./uploads/filename-äöü.jpg [1] => ./uploads/filename.jpg [2] => ./uploads/test이test.jpg [3] => ./uploads/имя файла.jpg [4] …

1
如何关闭Windows Azure的“此Windows副本不是正版”消息?
是否有任何设置/配置项可避免Windows Azure在屏幕上打印该错误或检测到该错误?我在下面放置了一个屏幕截图,显示了当您将RDP用作Web角色时的消息。我的Web角色在Windows Azure Guest OS 1.17(Windows Server 2008 SP2的各种版本)上运行 背景:我正在向一些外部工程师(包括NDA和所有)解释我们的体系结构,并且由于他们不熟悉Azure而不得不揭开这个秘密的神秘面纱。当他们的一名工程师喘着粗气说:“你们在云中运行Windows的盗版Windows副本吗?”时,我对运行Web角色的VM进行了RDP处理。我还注意到,在RDP屏幕中,Azure机器的左下角具有“此Windows副本不是正版”。 现在显然,Microsoft在自己的数据中心中运行自己的OS,而不受我的影响。因此,尽管有明显警告,但这里没有“盗版”行为。但是,他们似乎对此很分散注意力(“怎么可能?真的?嗯?”),以至于我们在谈论它上比在工作中实际花费更多的时间。就像我说的那样,他们几乎没有接触过Azure,但在其他地方却有增值的机会。我想摆脱它,所以以后不必再解释了。 PS Microsoft:如果要修改Windows Server <XYZ>为Windows Azure <A.B>,还应该修改验证产品完整性的代码。
10 azure 

6
使用Puppet进行应用程序部署
我是Puppet的新手,虽然我多年来一直使用* nix系统,但是我从未以sysadmin或ops的身份工作。 我当前正在编写Puppet清单,用于托管一组(PHP / MySQL / MongoDB,git中的代码)Web应用程序。显然,Puppet需要对实际应用程序有所了解,因为我将为每个虚拟主机设置一个虚拟主机,但是我不确定Puppet是否应管理代码部署和数据库创建之类的事情。 Puppet是适合应用程序部署的工具吗?如果没有,您可以推荐更合适的工具吗?

2
无法以tty-less用户身份登录
我试图通过从没有tty的用户(我的apache服务器运行为该用户)的用户调用ssh(使用密钥认证)来运行单个命令,并一直得到以下结果: OpenSSH_5.9p1, OpenSSL 1.0.0g 18 Jan 2012 Pseudo-terminal will not be allocated because stdin is not a terminal. debug1: Reading configuration data /etc/ssh/ssh_config debug1: Connecting to localhost [::1] port 54367. debug1: Connection established. debug1: identity file nonpublic/id_rsa type 1 debug1: identity file nonpublic/id_rsa-cert type -1 debug1: Remote protocol version 2.0, …
10 linux  ssh 

2
槟榔1280ml RAID6卷设置失败
今天,我们遇到了最坏的情况,并且对任何好的想法都持开放态度。 这是我们的问题: 我们正在使用几个专用的存储服务器来托管我们的虚拟机。在继续之前,这里是规格: 专用服务器机 槟榔1280ml RAID控制器,固件1.49 12个三星1TB硬盘 我们用10个包含一个逻辑卷的磁盘配置了一个RAID6集。系统中有两个热备件。 今天,一个硬盘发生故障。这种情况不时发生,因此我们将其替换。重建第二张光盘失败。通常这没什么好玩的。我们停止了繁重的IO操作,以确保稳定的RAID重建。 令人遗憾的是,热备份光盘在重建时发生了故障,整个过程停止了。 现在我们有以下情况: 管制员说袭击团队正在重建 控制器说卷失败 这是一个RAID 6系统,并且有两张磁盘发生了故障,因此数据必须完整无缺,但是我们无法再次使卷联机以访问数据。 在搜索时,我们发现了以下线索。我不知道它们是好是坏: 将所有光盘镜像到第二组驱动器。因此,我们将有可能尝试其他事情而不会失去比我们已经拥有的更多的东西。 尝试在R-Studio中重建阵列。但是我们没有使用该软件的实际经验。 拉动所有驱动器,重新引导系统,更改为槟榔区控制器BIOS,然后一张一张地重新插入HDD。有人说,由此使系统联机。有人说效果为零。有人说,他们炸毁了整个事情。 使用未记录的槟榔命令,例如“ rescue”或“ LeVel2ReScUe”。 联系计算机取证服务。但是,通过电话进行的初步估算超过了20.000欧元。这就是为什么我们会恳求帮助。也许我们缺少明显的东西? 是的,当然,我们有备份。但是某些系统丢失了一周的数据,这就是为什么我们想要重新启动系统并运行。 任何帮助,建议和问题都将受到欢迎。

3
VM中“不支持”应用程序?
我们从一家小型公司购买了一些软件,这是Windows 32位视频内容工作流管理器,他们进行了一些自定义。 我们在运行W2K3EE-32位的VMWare ESXi 4.1u2 VM中运行此代码的工作已经超过一年了(他们支持在其上运行它)。 然后他们大约一个月后更新了代码,我们开始看到其中一个vCPU定期以100%固定,第二个vCPU处于闲置状态(例如5-7%),因此我们只是假设代码的线程不正确,并与他们联系。它。 现在,他们回到我们身边说,他们的代码在VM中不起作用,他们已经知道此要求18个月左右,并且希望我们对其进行V2P。他们说,他们只有在虚拟机中运行时才会看到此问题。我已经打电话给他们安排在几个小时内讨论的高级程序员。 幸运的是,现在我们可以进行一些物理操作,虽然有点费时但可行。 但是我的问题是,鉴于该虚拟机不直接接触任何硬件,而是在非常现代的主机上并且实际上具有非常低的要求(2个vCPU,4GB,20GB引导虚拟磁盘,100GB数据虚拟磁盘,单个vNIC等)如果有,可能是在VM中运行它的问题? 显然,我强烈地与他们一起追求这一点,但是我只是想知道是否还有其他人找到了常规应用程序,从而以某种方式在VM内而不是在物理上出现了异常。

2
重定向SSL而不发出警报
客户端仅对域的www.site.com版本具有SSL证书,而对site.com没有SSL证书。 通过mod_rewrite重定向常规HTTP并不是问题。 但是,这种方法对于我们来说对于HTTPS似乎失败了。 我们希望将https://site.com请求重定向到https://www.site.com。 是否可以在浏览器中不发出无效证书警告或获取通配符证书的情况下完成此操作?

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.