服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器
与以前的许多问题类似,我发现自己正在做一个我希望在屏幕上运行的工作。 我不得不放弃这个过程,因为我需要断开连接。 现在我重新连接了,我看到这个过程还在运行。 我怎样“回收”这个过程,以便我可以看到它的输出并给出它的input? 这个问题不同于将正在运行的进程移动到屏幕上,因为它涉及重新打开丢失的stdin / out / err句柄。
我有一个通过SSH连接的虚拟化服务器。 如果我现在改变窗口的大小,它会自动传播到服务器。 使用stty -a很容易看出,检查列和行值。 然后,我使用virsh console连接到基于KVM的虚拟机上的串行接口。 当我现在改变窗口的大小,它不传播到虚拟服务器。 通过检查stty -a ,这是最容易看到的,当我更改窗口大小时,这在虚拟机上没有更新。 这意味着换行符在terminal中无法正常工作,并且除非客户机上的窗口大小与服务器上的默认大小相匹配,否则依赖于窗口大小进行格式化(emacs,man等)的任何应用程序都会混乱。 解决方法是使用stty手动设置窗口大小以匹配客户端窗口,但是我想知道是否有任何方法可以获取这些信息来自动传播和设置虚拟机中的窗口大小。
(在这个问题上,我很抱歉,我通常是一个程序员,而不是系统pipe理员,但是我自己做了一些事情的自动化,并且清理了一些其他自动化的东西,但是没有以最漂亮的方式。:-) 我一直在环顾各种各样的工具,将软件部署自动化到cfengine,Puppet和Chef等一堆服务器上。 到目前为止,木偶看起来是最有吸引力的,但我当然还没有承诺任何东西。 这些工具看起来像是可以很好地保持一堆服务器与预先打包的软件的最新状态。 我没有得到的是:如何使用工具(如Puppet)来pipe理我们自己的内部软件的部署? 我觉得我很茫然,因为我看过一千个教程展示了如何让Apache ensure => latest (这非常酷),但是没有什么和我今天的用例相对应,这更像是: 当一个人按下button时, 从版本控制库B中拉出分支A. 运行命令C来编译它 将二进制文件D复制到服务器E1到E10 在每台服务器上运行命令F使所有更改生效 木偶听起来不错,我完全看到声明式,幂等configuration优于一些shell脚本的优点,但我还没有看到任何教程“你想更新你的shell脚本到Puppet(或厨师,或cfengine),所以这就是你应该做”。 有这样的事吗? 其他人是否明白如何把Puppet文档中提供的内容复制到我想要的行为上? 我只是没有得到它? 到目前为止,听起来对于我来说,人类(#1)会手动打包Puppet外部的软件(#2和#3),手动更新Puppetconfiguration,这将触发Puppet更新服务器。 .. 也许? (我在这里有点困惑,因为我敢肯定你可以告诉。) 谢谢!
我有一台运行Win2008 RC2的虚拟服务器。 我已经build立了一个虚拟的SMTP服务器上的IIS6是我在这里托pipe的网站的邮件提供商。 这一切都很好,但如果由于某种原因服务器重新启动(自动更新仍然启用 – 我试图尽可能less工作,因为我们有很多的客户端),IIS6不会重新启动SMTP服务器。 目前的设置失败导致500错误,所以我花了半天的道歉。 有任何想法吗? 在服务中,我已经设置了一切自动回来,但仍然没有骰子。 只要我重新启动SMTP,没有问题,所有的邮件被发送。 它的工作完美,它不会重新启动。 我真的宁愿不把自动更新closures,因为我们是一个小公司,我不能花时间手动更新15个窗口的副本每次MS决定有一个安全补丁。 所有的build议感激! 顺便说一句,我是一个完整的newb这些论坛。 我search,但无法find答案,所以请好。 但坚定。 我必须在这里学习。
是否可以强制特定用户使用公钥login,同时允许其他用户使用密码login? 由于公钥authentication(使用密码)比纯密码authentication更强,我们希望sudoer用公钥login。 但是,强制普通用户这样做是不太方便的。 在sshd_config ,我看不到任何策略相关的configuration。
这是从这个相关的问题出发,我想知道如何强迫两个事务顺序发生在一个平凡的情况下(其中两个都只在一行上运行)。 我得到了一个答案 – 使用SELECT … FOR UPDATE作为两个事务的第一行 – 但这会导致一个问题: 如果第一个事务从不提交或回退,那么第二个事务将被无限期地阻塞。 innodb_lock_wait_timeoutvariables设置客户端尝试进行第二个事务的秒数,然后告诉“对不起,再试一次”……但据我所知,他们会再次尝试,直到下一次服务器重新启动。 所以: 如果一个交易永远持续下去,肯定有办法强制ROLLBACK ? 我必须诉诸使用守护进程来杀死这样的事务,如果是这样的话,这样的守护进程是什么样的? 如果连接被wait_timeout或interactive_timeout中间事务wait_timeout ,事务是否回滚? 有没有办法从控制台testing这个? 澄清 : innodb_lock_wait_timeout设置事务在放弃之前将等待锁释放的秒数; 我想要的是一种迫使锁被释放的方式。 更新1 :下面是一个简单的例子,它演示了为什么innodb_lock_wait_timeout不足以确保第二个事务不被第一个事务阻塞: START TRANSACTION; SELECT SLEEP(55); COMMIT; 使用innodb_lock_wait_timeout = 50的默认设置,此事务在55秒后完成而没有错误。 如果在SLEEP线之前添加UPDATE ,则从另一个客户端启动第二个事务,该客户端尝试SELECT … FOR UPDATE同一行,这是第二个事务超时,而不是睡着的那个事务。 我正在寻找的是一种强制结束这个交易的安宁睡眠的方法。 更新2 :为了响应hobodave关于上述示例的真实性的问题,以下是一个备用scheme:DBA连接到活动的服务器并运行 START TRANSACTION SELECT … FOR UPDATE 第二行locking应用程序频繁写入的行。 然后DBA被打断,走开,忘记结束交易。 应用程序停止运行,直到行被解锁。 我想尽量减less由于这个错误导致应用程序被卡住的时间。
我想build立一个服务器,通过SMB / CIFS和NFS导出用户主目录。 这个服务器将被join到一个Win2k3 AD域控制器,它拥有我们的用户数据库。 据我了解,winbind将在飞行中为这些用户发明UID。 此用户名-UID映射需要可用于挂载主目录的NFS客户端,否则文件所有权将无法正确显示。 我认为这可以使用SFU来实现,但是据我所知,SFU已经停止使用,并且在最新版本的Windows上不支持,所以我不想使用它。 如何最好地将此映射提供给NFS客户端? (你会认为这是一个常见的用例,但我找不到相关的howto,我的Google-fu可能很弱) 编辑:顺便说一下,在这种情况下,用户可以通过NFS进行连接,而无需先通过SMB / CIFS进行连接吗?
所以我是像GNU Screen和Tmux这样的多路复用器的忠实粉丝 ,但即使使用Screen多年,我仍然认识到有很多事情我不知道(我只用了Tmux几个月, )。 你在这些软件上使用什么configuration,技巧和诀窍(两者或两者都无关紧要)? 我使用这个作为我的屏幕configuration(我想我适应了这个从Ubuntu的默认screenrc ): shell -$SHELL startup_message off defscrollback 1000 hardstatus alwayslastline '%{= wk}%?%-Lw%?%{r}(%{k}%n*%f%t%?(%u)%?%{r})%{k}%?%+Lw%?%?%= %m/%d %C%A' activity '' termcapinfo xterm* 'hs:ts=\\E]2;:fs=\\007:ds=\\E]2;screen\\007' 这是一个简单的configuration,以保持状态栏显示一些颜色,但我相信,有更多的事情,我可以做屏幕和Tmux,并希望知道它。
我最近在我的服务器上使用“adduser username”设置了一个新用户,并注意到当我login时,我得到: $ 此外,与我的新用户没有文件夹突出显示,或选项卡完成。 但是,当我作为根login我得到一个完整的terminal提示,加上突出显示,完成等 root@lin01:~# 任何人都知道我做错了什么? 编辑:解决scheme是键入 chsh -s /bin/bash 用$login。
我有一个正在执行bash脚本的django应用程序。 我需要nginx服务器重新启动,所以我运行/etc/init.d/nginx reload这很好。 我一直在使用restart uwsgi uwsgi,但我需要做一个优雅的重新加载,而不是硬重启服务器。 我该怎么做? 我目前正在运行一个bash通过reload uwsgi函数。 它似乎只是重新加载调用subprocess,而不是由uwsgi实例托pipe的所有网站的过程。 importing uwsgi uwsgi.reload并运行uwsgi.reload似乎也只影响调用过程。 是否有一个开关为uwsgi通过Python或bash,允许重新启动所有uwsgi进程