Articles of linux

systemd中的软依赖

我想了解是否有办法在systemd服务之间创build一个软依赖关系。 基本上,我想创build一个“伞”服务,启动标记为(软)依赖关系的其他服务,但是当且仅当它们被启用时 – 伞不应该启动被禁用的相关服务。 更具体地说,我收到了cfengine-systemd的拉取请求 ,旨在创build这样一个伞形单位。 不幸的是,build议的cfengine3.service单元不遵守从属单元的启用/禁用状态,并在任何情况下启动它们。 我曾经试图用一个目标单位来做同样的事情,但是失败了 。 任何线索? 提前致谢 更新下面迈克尔的问题:我会说,如果cfengine3.service被禁用,systemd不应该尝试启动依赖服务。

MySQL根密码不能按预期工作

我在Ubuntu 16.04上运行MariaDB 10.0.24。 我通过xenial repo apt-get install mariadb-server 。 根密码似乎没有正常工作。 我跑了这些步骤来设置密码: http : //dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html,但我得到以下行为: 当我做sudo mysql或者sudo mysql -u root它会让我进入控制台,而不需要input密码(为什么我可以在没有密码的情况下进入?) 当我做sudo mysql -u root -p ,会询问我input密码,但不pipe我input什么string,都会让我进入mysql控制台。 为什么当给出不正确的密码时让我进入? 当我执行mysql -u root它会要求我input密码,但不会接受我按照链接文章中的说明设置的密码。 有些东西显然是不正确的。 有谁知道为什么它不从根本上要求密码,不接受我的用户的密码?

通过openvpn连接路由所有networkingstream量,并接受主机真实IP地址上的传入请求

我正在寻找一种解决scheme,通过OpenVPN从服务器路由所有stream量,但保留在服务器上可以在局域网之外访问应用程序的可能性。 更具体一些:服务器上有两个应用程序托pipe。 有一个绑定端口80的应用程序和一个绑定端口8080的应用程序。进出这些服务的所有通信必须直接进行,所有其他通信必须通过VPN通道。 目前,请求正在直接接收,但在VPN运行时没有应答。 当我禁用VPN时,所有服务都可以达到: 我怎样才能configurationOpenVPN,例如一个向上的脚本,以便这些路由将被正确路由? 我的networking接口概述: lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:537169 errors:0 dropped:0 overruns:0 frame:0 TX packets:537169 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:147901148 (147.9 MB) TX bytes:147901148 (147.9 MB) p4p1 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx inet addr:192.168.2.201 Bcast:192.168.2.255 Mask:255.255.255.0 inet6 […]

Sendmail dsn = 5.0.0 PHP向yahoo发送邮件时服务不可用

我有关于sendmail的问题,我已经search了类似的问题,但找不到任何有用的东西。 我目前正在用sendmail使用服务器(带有LAMP堆栈的Debian),在网站上发送用户注册的validation邮件。 这通常工作正常,Gmail例如收到邮件,一切正常完美。 但是我最近发现,用雅虎它根本不起作用,邮件似乎没有被雅虎收到。 所以我自己build立了一个雅虎帐户进行testing,并观察了以下行为,我尽可能详细地描述: 我使用下面的PHP代码片段来发送邮件: $toEmail = '…'; $subject = '…'; $message = '…'; $headers = array(); $headers[] = "MIME-Version: 1.0"; $headers[] = "Content-type: text/plain; charset=utf-8"; $headers[] = "From: [email protected]"; $headers[] = "Subject: {$subject}"; $headers[] = "X-Mailer: PHP/".phpversion(); if(mail($toEmail, $subject, $message, implode("\r\n",$headers))) { return TRUE; } 我得到了一个在服务器上工作的sendmail安装,处理来自PHP的邮件命令。 如上所述,除了雅虎之外(几乎所有我不知道的其他人),这对于几乎所有的地址都是完全正常的。 使用触发发送邮件的网站上的表格,我几秒钟内收到邮件。 以下是/var/log/mail.log显示的日志 May 3 14:19:12 btfmx5 […]

将EC2 nginxredirect到不同的域

我有一个网站mysubdomain.mydomain.com,需要redirect到myotherdomain.com/coming-soon 具有现有用户的应用程序需要redirect到完全不同的域上的另一个站点。 我的EC2机器正在使用nginx。 我试着通过添加修改/etc/nginx/nginx.conf文件 server { listen 443; listen 80; server_name *.mydomain.com; return 301 http://www.reallifeglobal.com/coming-soon; } 我也尝试过对此进行各种修改,包括将server_name更改为像.mydomain.com , * , mysubdomain.mydomain.com ,但似乎没有任何效果。 当我去到URL,它加载一个完全空白的页面(而不是加载现有的应用程序),但它不会redirect到返回的URL。 此外,我首先尝试直接通过DNS提供商redirect,但它只为http工作,他们使我redirecthttps非常复杂,所以我看到了什么需要在AWS的一面redirect的东西。 我只是一个小小的开发人员,不太了解devOps,还有其他的东西需要知道,以帮助我知道。 编辑网站已启用:启用网站内部是一个。elastic文件的.bean文件 map $http_upgrade $connection_upgrade { default "upgrade"; "" ""; } server { listen 80; location / { proxy_pass http://docker; proxy_http_version 1.1; proxy_set_header Connection $connection_upgrade; proxy_set_header Upgrade $http_upgrade; proxy_set_header Host $host; […]

将string传递给for循环时出错

我通过ssh通过查找从服务器抓取文件列表 for f in `ssh -p ${SSH_PORT} -l ${SSH_USER} ${SSH_HOST} -t "find ${DIR_REMOTE} -type f | grep jpg" 2> /dev/null` 当我在for循环( echo ${f} )主体中回显列表时,一切正常: /a3/obieg/skan001/skan001.jpg /a3/obieg/skan001/skan000.jpg /a3/obieg/skan001/skan003.jpg /a3/obieg/skan001/skan002.jpg /a3/obieg/skan.jpg ( scp -p -P ${SSH_PORT} ${SSH_USER}@${SSH_HOST}:"${f}" "${DIR_SUB}${2}_$(date +%Y%m%d_%H%M%S_%N.jpg)" ),结果是: : No such file or directory001.jpg : No such file or directory000.jpg : No such file or […]

如何在rsyslog中处理来自我的自定义应用程序的消息?

我的服务器上有一个Ruby应用程序,我们称之为“alpha”。 应用程序发出系统日志消息,程序名称为“alpha”。 我想根据它是什么types的消息将我的日志消息分成单独的文件,例如“auth”消息(login)或系统资源警告。 我没有任何方式指定“消息types”syslog除了我的程序名称,所以我只是在我的消息开始时添加“AUTH:”,“SYSTEM:”等。 使用谷歌和手册页,我已经提出了这些条件: :programname,isequal,"alpha" /var/log/alpha.log 这将所有来自“alpha”应用程序的消息logging到正确的日志文件中。 :msg,startswith," AUTH:" /var/log/alpha-auth.log 这将以“AUTH:”开头的所有消息logging到正确的日志文件中。 显然,最后一个条件不仅适用于“alpha”,而且适用于所有的消息。 我想将这些条件结合到一个表示“从AUTH开始的所有来自alpha的消息:…”。 是否有可能将滤波器与“和”结合起来? “BSD风格块”似乎是完美的,因为我可以为我的应用程序定义一个块,所有条件只适用于来自该应用程序的消息。 不幸的是, 根据文档,该function不再支持 (不build议使用?),我不想依赖于不推荐使用的function。 rsyslog v7 +引入了这种块的替代scheme吗? 使用基于expression式的filter,我已经设法得到我想要的结果,但我觉得我正在用一个火箭筒杀死一只苍蝇: if $programname == "alpha" and $msg startswith " AUTH:" then \ /var/log/alpha-auth.log 什么是“正确”(即最简单,最不容易出错)的方式来做到这一点? 我正在使用Debian Jessie,目前的意思是rsyslog 8.4.2

文件传输速度慢

我有一台运行Ubuntu Server 14.04LTS的服务器,目前我的networking传输速度很慢。 这台服务器现在已经运行了大约2年,突然间我遇到了问题。 通常传输一个单一的文件到这台服务器,我会得到100 MB / s到115 MB /秒。 目前,速度可以获得,但只有短暂的时间。 通过4GB的文件传输大约一半的速度下降到约50MB /秒,然后传输locking,然后我得到一个错误消息,说:“访问共享有问题”,我不得不取消文件传输。 文件传输当前正在运行的服务器和机器都通过Cat6千兆位以太网连接。 服务器有一个硬件RAID 10存储arrays,所以驱动器的速度和networking速度不成问题。 就像我之前说的那样,这个系统已经有两年没有问题了,突然间出现了。

Monit在重新启动时运行脚本

所以我一直试图让Monit在服务启动时运行脚本。 虽然Monit没有问题重新启动服务,我当然希望得到警报,如果我的服务需要开始,而不是无限期地下降。 这是我的/etc/monit/conf.d/nginx.pid文件: check process nginx with pidfile /var/run/nginx.pid start program = "/usr/sbin/service nginx start" stop program = "/usr/sbin/service nginx stop" if failed host 127.0.0.1 port 8080 then restart if changed pid then exec "/etc/monit/slack.rb" if failed host 127.0.0.1 port 8080 then exec "/etc/monit/slack.rb" else if succeeded then exec "/etc/monit/slack.rb" if cpu is greater than […]

我在哪里可以findotrs-scheduler文件?

我试图在Debian系统上安装otrs 。 我按照这些说明 。 它直到最后一步都很好。 但是我根本找不到手册中引用的文件scripts/otrs-scheduler-linux 。 我在哪里可以find文件?