服务器管理员

系统和网络管理员的问答

5
从任何地方运行脚本
我有一个脚本: #!/bin/bash echo "$(dirname $(readlink -e $1))/$(basename $1)" 坐在这里:/home/myuser/bin/abspath.sh具有执行权限。 如果我运行,echo $PATH则会得到以下信息:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/myuser/bin 我希望能够从任何目录调用abspath <some_path_here>它并调用我的脚本。我正在使用bash,我做错了什么?

2
ProxyPassReverse指令的用途是什么
apache.org的定义说: 该指令使Apache httpd可以调整HTTP重定向响应中Location,Content-Location和URI标头中的URL。当Apache httpd用作反向代理(或网关)以避免由于后端服务器上的HTTP重定向位于反向代理后面而导致绕过反向代理时,这是必不可少的。 仅上面特别提到的HTTP响应标头将被重写。Apache httpd不会重写其他响应标头,默认情况下也不会重写HTML页面内的URL引用。这意味着,如果代理内容包含绝对URL引用,则它们将绕过代理。要重写HTML内容以匹配代理,必须加载并启用mod_proxy_html。 path是本地虚拟路径的名称;url是远程服务器的部分URL。这些参数的用法与ProxyPass指令的用法相同。 有人可以解释一下它是如何工作的。通常,该指令有什么作用?

5
如何减少Virtualbox vdi文件的虚拟大小/容量
我想将运行MS Windows 7的物理机转换为VirtualBox虚拟机。这很容易,我之前已经做过,但是这次我需要将磁盘的虚拟大小/容量固定为较小的大小。 它需要修复,因为出于合规性原因我将在其上安装PGP磁盘加密。这会将动态磁盘扩展到最大大小。 除了这种特殊情况外,还有其他一些原因需要磁盘更小和固定。是我的经验。例如,如果您在动态扩展的磁盘上运行Jenkins构建服务器,则可能会看到该磁盘迅速扩展到其最大大小,而在来宾操作系统中,磁盘空间使用率稳定且有很多可用空间。 使用Disk2vhd我创建了一个vhdx文件。我将此文件转换为vdi格式。 vboxmanage clonehd --format VDI MSWIN7.VHDX MSWIN7.vdi 据说,使用vdi可以通过类似于以下命令来减小虚拟大小/容量 vboxmanage modifyhd MSWIN7.vdi --resize 160000 我发现这行不通。即使您尝试使用变体,您也会持续收到以下错误消息: 进度状态:VBOX_E_NOT_SUPPORTED VBoxManage:错误:此格式的硬盘操作尚未调整大小! 以下是我的vdi磁盘的磁盘布局。我将其添加到Ubuntu VM,以使用Gparted和CloneZilla对其进行查看。容量约为300GB。未分配145GB。使用的容量约为153GB。 我想将容量缩小到160GB左右。这应该足以适合/dev/sdb1和/dev/sdb2。 顺便说一句,我尝试了CloneZilla,但它似乎也不希望将容量缩小到较小的磁盘上。我在CloneZilla中尝试了各种设置,但没有成功。 如何减少虚拟大小/容量?

2
Cat,Grep,重定向输出…空白文件?
我刚跑 cat /opt/webapplications/Word/readme.log | grep -v 'Apple' 然后我得到了期望的cli输出,这是其中的所有行readme.log都不包含' Apple'... 接下来我跑了 cat /opt/webapplications/Word/readme.log | grep -v 'Apple' > /opt/webapplications/Word/readme.log 但是,/opt/webapplications/Word/readme.log为空白。 谁能向我解释为什么会这样,或者我应该以正确的方式去解决这个问题?
8 bash  grep  pipe  cat 

2
BSOD 0x09c在50台SuperMicro计算机上
对于一个项目,我们有50台服务器(全部)配备(通常)相同的硬件。我们这里遇到的问题非常严重,并且在所有计算机上都会发生。尽管付出了很多努力,并与制造商和软件开发人员联系,但每个人都指向彼此,甚至拒绝向我提供正在发生的事情的线索。 首先让我描述一下设置。这是“服务器级”硬件。对于我的第一次经验,servergrade是我一生中最大的失望。 超微X10SDV-8C + -LN2F 英特尔至强D-1540(嵌入式主板上) 定制设计的1U机箱或SuperMicro原装机箱 480瓦服务器PSU或200瓦SuperMicro原始PSU 三星Evo 850 500 GB SSD 32 GB DDR4-2133 ECC或NON-ECC(但不能在同一服务器中混合使用) 华硕GT730 4GB DDR3 GPU GPU装有PCIe转接卡(非功能区),其名称来自中国或SuperMicro原创 在系统上运行-Windows Server 2012 R2 Enterprise-VMWare工作站12-VM运行GPU密集型任务-该系统有货,根本没有超频/超频 症状-随机BSOD 0x09c(又名Machine_Check_Exception):有时系统运行一周没有问题,有时在仅10分钟后崩溃,但大多数情况下运行了几个小时。 已经尝试/检查过: BIOS更新为最新版本(我现在认为这可以缩短系统稳定的时间,但这可能是随机的)。 Windows已更新为最新版本。 VMWare已更新为最新版本。 交换所有组件并尝试了所有其他选项,甚至尝试了台式机ATX PSU和M.2 SSD。 使用Ubuntu从头开始安装所有系统。我不熟悉Linux,也从未见过Linux BSOD,但由于服务器系统没有头,所以我仍然没有,我在DC中尝试过。结果:系统将挂起,并且重启后Linux报告XORG崩溃(与GPU相关)。 将BIOS中的GPU设置更改为“ Above 4G”,BIOS的其余部分为出厂默认设置。 还提供信息: 系统位于数据中心中。温度,空气,功率和网络是最佳的。 温度远低于出厂最高温度 我们在台式计算机(带有台式机硬件)上运行的软件设置完全相同。这些系统每月可以正常运行100台PC中的1台崩溃。 我已经联系VMWare,说这是硬件问题 我已经联系了超微(SuperMicro),他们只说了几句话,什么都没有说,并且已经尝试过了,而且这仍然可能是软件问题。 我们在这里绝望。幸运的是,我们运行的应用程序是多余的。如果服务器及其上的VM掉线,则不是问题,其他服务器将在5分钟内接管负载,但是按照这种速率,我必须整天处于联机状态才能重新启动服务器。 我拥有大量的硬件知识,但是这已经过去了,我整天都在搜索一个多月以尝试各种不同的方法。这些主板可与托管服务提供商大规模使用,这一事实使我怀疑主板本身还可以。对于RMA,这绝对不是特定的硬件问题,因为所有50个板卡都有相同的症状。与我们唯一不同的是GPU。这与Linux实验相结合,使我怀疑这一定是PCIe通道上的东西。GPU本身在台式机主板上是稳定的。尽管内存容量很大,但是这是一个小的GPU,不会消耗太多电能。我会怀疑中国的转接卡,但是我们又使用了超微认证的转接卡,它们丝毫没有改善。 我非常渴望在这里找到解决方案。这将从确定确切原因开始。我们愿意向能够分析一些转储并提供更多详细信息(甚至更好的是,解决方案)的专家表示感谢。 …

3
如何检查Linux上的绑定安装是私有的还是共享的?
mount命令允许我们使绑定挂载成为共享,从属,共享+从属,私有或不可绑定,但是,对于给定的挂载点,我无法确定根植于绑定挂载的子树的类型(共享,从属,私有,共享+从属或不可绑定)。如何查找绑定安装是从属还是私有?

2
带有数据的PostgreSQL容器化的分布式文件系统
我很好奇,是否有人在某种形式的分布式文件系统(最好是GlusterFS)上的生产容器中运行PostgreSQL。 我目前正在运行Mesos / Marathon。万一PostgreSQL节点发生故障,Marathon只需在其他节点上启动PostgreSQL的另一个实例,并且如果操作正确(服务发现和应用程序从数据库连接丢失中恢复),将实现最终的容错能力。 我知道PostgreSQL有自己的HA解决方案,例如日志传送和热备用备份,但是仍然需要解决何时从主服务器切换到从服务器,如何正确执行操作等问题。 那么,如何在GlusterFS或类似产品上的生产环境中运行PostgreSQL?如果可以,是否稳定?性能如何?

1
CentOS 7-通过VSFTPD创建的目录不继承SELinux上下文
我们公司拥有一个带有CentOS 7的Web服务器,我们的客户通过FTP(vsftpd)管理其网站。SELinux处于强制模式。 问题是通过VSFTPD创建/上传的数据没有继承适当的SELinux上下文。让我解释。 例如,对于WordPress网站,服务器开箱即用地已经具有一些可以使用看到的规则semanage fcontext -l |grep '/var/www',它们是: /var/www/html(/.*)?/uploads(/.*)? all files system_u:object_r:httpd_sys_rw_content_t:s0 /var/www/html(/.*)?/wp-content(/.*)? all files system_u:object_r:httpd_sys_rw_content_t:s0 因此,当我将WordPress网站复制到另一台服务器时,/var/www/html/通过SSH 将其复制到目录中,wp-content/并wp-content/uploads/具有适当的httpd_sys_rw_content_t安全上下文。但是,当这些文件夹通过FTP创建时,它们获得的上下文是httpd_sys_content_t(no rw)。这意味着我们的客户上载到服务器的站点即使将写权限授予apache用户/组也无法写入这些目录,因此WordPress管理员无法正常工作。因此,当他们上载网站时,他们必须请求我们的支持以解决此问题,这对于所有参与者来说都是浪费时间。 假设客户将其网站上传到中httpdocs,如果通过SSH mv httpdocs/ httpdocs.2/ && cp -pr httpdocs.2/ httpdocs/ && rm httpdocs.2/ -fr可以解决问题,那么数据没有问题。 我也restorecon -Rv httpdocs/可以解决此问题。 因此,问题是:如何使通过VSFTPD创建/上传的目录继承正确的SELinux上下文,就像通过SSH创建/上传目录时继承它们一样?

2
OverlayFS:如何删除文件而不隐藏它们
我正在尝试将两个安装点聚合到一个目录中,以便它将两个文件都合并到一个安装点中。我正在使用overlayfs做一些测试,并且已经能够创建合并的安装点,但是当我从此合并目录中删除文件时,问题就来了。 我知道overlayfs有一个上层文件系统和一个下层文件系统,并且如果您从下层文件系统中删除某些内容,则会在上层文件系统上创建“空白”,基本上只是将下层文件从“通过”隐藏到合并层。该文件仍然占用较低文件系统上的空间;它只是没有提供。 我的问题是:如何从上层和下层文件系统中删除文件,并回收已删除文件使用的空间,而不仅仅是隐藏它?我可以从合并目录中手动删除文件,然后从较低目录中手动删除文件(这是一件不好的事吗?),但df -ha仍然显示合并目录占用了空间: none 6.8G 1.9G 4.6G 30% /var/www/merged /dev/loop0 380M 2.3M 354M 1% /mnt/lower1 /dev/loop1 380M 2.3M 354M 1% /mnt/lower2 /dev/loop2 380M 2.3M 354M 1% /mnt/upper none 380M 2.3M 354M 1% /mnt/merged 从overlayfs文件系统删除文件并正确报告准确的磁盘使用情况的正确方法是什么?

1
Nginx日志中的SSL错误
我在nginx错误日志中得到此日志条目: 2016/03/19 09:46:33 [crit] 14355#14355: *7761 SSL_shutdown() failed (SSL: error:140E0197:SSL routines:SSL_shutdown:shutdown while in init) while SSL handshaking, client: 178.63.105.85, server: 0.0.0.0:443 我不明白这是什么意思。我曾尝试过Google,但没有成功。

1
Ansible难以重新启动Supervisor
我试图通过我的Ansible Playbook重新启动Supervisor,但似乎遇到了Ansible的超级用户模块问题。 在我的主管配置中,我定义了一个程序: [program:process] process_name=%(program_name)s_%(process_num)02d command=/home/box1/workers/bin/process numprocs=64 directory=/home/box1/workers/bin autostart=true autorestart=true startretries=5 stderr_logfile=/tmp/%(program_name)s-err.log stdout_logfile=/tmp/%(program_name)s-out.log user=root 这很好。但是,当我尝试通过Ansible重新启动Supervisor时,出现以下错误: failed: [box1] => {"failed": true} msg: program:process: ERROR (no such process) program:process: ERROR (no such process) 我的Ansible任务配置如下所示: - name: Restart Supervisor sudo: yes supervisorctl: name=program:process state=restarted config=/etc/supervisor/supervisord.conf 对于name参数我都试过program:process,program,program:和process,但似乎没有工作。我目前正在使用Ansible 1.5.4。

4
将EBS快照复制到S3以进行低成本存储
目标:能够将EBS快照复制到S3,并且可以将其视为任意对象,可以根据需要将其下载到本地本地机器上。 我知道EBS快照实际上是由S3支持的-它们只是不会出现在“常规”存储桶中。我看到的用于复制快照的控制台和CLI机制似乎集中于将快照从一个区域复制到另一区域(作为快照),而不是复制到S3作为“任意对象”。 根据我的阅读,EBS快照的$ / GB费用比S3中的对象高。很快就不需要了),我想将它们作为对象“归档”到S3 ...本质上: 将对象复制到S3的快照 在EC2中删除快照 五六个月过去了 快照复制S3中的对象到EC2 从现在在EC2中显示的快照创建卷 能做到吗?

2
Metasploit:使用慢速搜索尚未构建模块数据库缓存
kalilinux 2016的最新metasploit(最新稳定版) systemctl start postgresql OK 在msfconsole上 msf > db_status [*] postgresql connected to msf 当我启动搜索 msf > search samba [!] Module database cache not built yet, using slow search 所以我重建缓存... msf > db_rebuild_cache 当我启动搜索时 msf > search samba [!] Module database cache not built yet, using slow search 奇怪!如何解决这个问题?
8 linux  security 

1
PowerShell管道进入find.exe命令
只是好奇,为什么会这样?如果我运行: netstat -an | find "443" 进入命令提示符后,将显示“ 443”连接。如果我在PowerShell控制台或ISE中运行相同的命令,则会收到错误“ FIND:参数格式不正确”。netstat输出是否无法通过管道正确地找到在PS中? 注意:如果我运行netstat -an | findstr "443"或netstat -an | select-string "443"在PS中运行,则工作正常。

2
为什么`crontab -`删除crontab,并且可以将其取消?
我急忙忘了Ë在crontab -e我打之前Enter。 出现提示,所以我用Ctrl+ 关闭D,与通常退出输入提示相同。 现在,没有任何警告,我的整个crontab都是空的。 为什么?什么逻辑导致这种情况发生?我应该如何关闭除Ctrl+ 以外的提示,D以便不保存任何内容?
8 bash  cron 

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.