我已经通过 SSH 连接到我的服务器并创建了一个进程,但突然我的互联网连接断开了。我知道进程正在进行,但是如何恢复以前的会话以查看进度呢?
我需要允许单个用户在 Debian Linux 机器上使用特定命令。我在/etc/sudoers文件中试过这个:
# User privilege specification
zabbix ALL=NOPASSWD: /usr/bin/apt-get --print-uris -qq -y upgrade 2>/dev/null |awk '{print $2}' | wc | awk '{print $1}'
Run Code Online (Sandbox Code Playgroud)
这不会按预期工作。如果我使用 sudo 作为用户 zabbix 运行命令,它会要求输入密码(尽管我已经指定了该NOPASSWD选项)。
但是,这有效:
# User privilege specification
zabbix ALL=NOPASSWD: /usr/bin/apt-get
Run Code Online (Sandbox Code Playgroud)
但有一个缺点,即apt-get允许所有的子命令。有没有办法解决这个问题,只允许一个特定的命令?
我忘记了我的 root 密码,并试图通过启动到单用户模式来更改它,但是在启动时我看到了这个屏幕:

然后我按“e”编辑启动配置,我得到这个屏幕:

但是,在我遵循的教程中,它说我应该导航到以“kernel”开头的行,但是正如您所看到的,我没有这一行。因此,我尝试在以“linux /boot/vmlinuz ....”开头的行上将“quiet”更改为“single”,但这不会将系统引导到单用户模式。
我应该编辑哪一行才能使其正常工作?
我在我的服务器上使用 monit 来监控 apache 和 mysql 的运行。
现在我想在磁盘太满时添加警报。我添加了这个用于测试/etc/monit/monitrc:
check device rootfs with path /dev/md0
if space usage > 10% then alert
Run Code Online (Sandbox Code Playgroud)
我有两个要检查的分区:/和/var:
mount
/dev/md0 on / type ext3 (rw)
/dev/md2 on /var type ext3 (rw)
Run Code Online (Sandbox Code Playgroud)
除了磁盘空间之外,此配置中还有哪些有用的检查?
我有两个问题。
问题 1:我的 debian 机器有接口 eth3,ip 192.168.57.28。如果有人尝试连接到 192.168.57.28:1234,我该如何将请求重定向到另一台机器:192.168.57.25:80?
问题 2:如果我的 debian 机器有两个接口:带有 192.168.57.28 的 eth3 和带有一些动态 IP 的 ppp0,并且有人尝试通过端口 1234 上的 ppp0 进行连接,我该如何将请求重定向到 192.168.57.25:80?
我试过这个:
$ iptables -t nat -A PREROUTING -p tcp --dport 1234 -j DNAT --to-destination 192.168.57.25:80
$ echo 1 > /proc/sys/net/ipv4/ip_forward
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
我有一个小的 Java 程序,它每秒循环调用 InetAddress.getByName("example.com")。当我使用 'strace -f' 在 CentOS 6.4 机器上运行它时,我看到 /etc/resolv.conf 已打开并读取一次:
$ grep /etc/resolv.conf strace.out
[pid 24810] open("/etc/resolv.conf", O_RDONLY) = 6
Run Code Online (Sandbox Code Playgroud)
当我在 Debian 7 上运行它时,我看到 /etc/resolv.conf 被重复打开或 stat()'d:
$ grep /etc/resolv.conf strace.out
[pid 41821] open("/etc/resolv.conf", O_RDONLY) = 10
[pid 41821] stat("/etc/resolv.conf", {st_mode=S_IFREG|0644, st_size=92, ...}) = 0
[pid 41821] open("/etc/resolv.conf", O_RDONLY) = 10
[pid 41821] stat("/etc/resolv.conf", {st_mode=S_IFREG|0644, st_size=92, ...}) = 0
[pid 41821] stat("/etc/resolv.conf", {st_mode=S_IFREG|0644, st_size=92, ...}) = 0
Run Code Online (Sandbox Code Playgroud)
两个系统都配置了 /etc/nsswitch.conf
主机:文件 dns
两个系统都没有运行名称缓存守护程序。
我在两台机器上使用了相同版本的 Oracle HotSot Java JVM 来排除任何 …
我在 /etc/init.d/ 中创建了一个脚本,它必须从其他(非 root 特权)用户的主目录运行其他几个脚本,就好像他们启动了它们一样。
我使用以下命令启动这些脚本: sudo -b -u <username> <script_of_a_particular_user>
它有效。但是对于继续运行的每个用户脚本(例如一些看门狗),我看到一个相应的父 sudo 进程,仍然活着并以 root 身份运行。这会在活动进程列表中造成混乱。
所以我的问题是:如何从现有的 bash 脚本中以另一个用户身份启动(fork)另一个脚本并将其保留为孤立(独立)进程?
更详细的解释:
我基本上是想为机器上的其他用户提供一种在系统启动或系统关闭时运行东西的方法,方法是运行在其主目录中的各个子目录中找到的可执行文件,名为 .startUp 和 .shutDown。由于我没有找到任何其他方法来做到这一点,因此我编写了完全执行此操作的 bash 脚本,并且已将其配置为 /etc/init.d/ 中的服务脚本(按照框架示例),因此当它运行时使用 start 参数启动 .startUp 目录中的所有内容,当使用 stop 参数运行时,它启动所有用户的 .shutDown 目录中的所有内容。
或者,如果我可以使用一些现有的解决方案来解决这个问题,我也很感兴趣。
更新
我环顾了一下,发现了这个问题:https :
//unix.stackexchange.com/questions/22478/detach-a-daemon-using-sudo
那里接受的答案,使用:sudo -u user sh -c "daemon & disown %1",对我有用。但我也试过没有拒绝 %1,结果是一样的。所以这就是我所期望的:
sudo -u <username> bash -c "<script_of_a_particular_user> &"
Run Code Online (Sandbox Code Playgroud)
我现在的另一个问题是,为什么它可以在没有拒绝的情况下工作?无论如何,对于某些潜在的特殊情况,我是否仍然应该离开拒绝电话?
更新 2
显然这也有效:
su <username> -c "<script_of_a_particular_user> &"
Run Code Online (Sandbox Code Playgroud)
这个调用和 sudo 调用有什么区别吗?我知道这可能是一个完全不同的问题。但由于我自己在这里找到答案,也许为了这个话题,有人可以在这里澄清这一点。
更新 3 …
假设您apt-get upgrade从 ssh 会话发出并且要升级的软件包之一是 openssh-server。
升级后是否重启了新的sshd进程?如果是,会话如何维护?如果没有,我应该明确地重新启动它还是我遗漏了什么?
所以今天早上我注意到我的网站关闭了,打开我的服务器,看到网络服务器已经停止。
当我尝试再次启动时,出现此错误
start -Dhttp.port=80 -Dapplication.secret=**********
[info] Wrote /home/Jakob/Apps/Botlanegg/target/scala-2.11/botlanegg_2.11-1.0.pom
(Starting server. Type Ctrl+D to exit logs, the server will remain in background)
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000d5550000, 715849728, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 715849728 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /home/Jakob/Apps/Botlanegg/hs_err_pid3892.log
Run Code Online (Sandbox Code Playgroud)
令我困惑的是,昨天网络服务器运行没有问题,今天早上突然停机?Debian 7.8 在服务器上运行。
cat …
我们如何在 xubuntu 15.10 中禁用可预测的网络接口名称?我希望我的旧接口命名为 eth0 ... ethx,我的一些软件假设 eth0 接口存在并且到处都是硬编码。