有没有办法在 Linux 上的命令行 MySQL 客户端中设置 keepalive?
我们的网络最近转移到 VLAN 设置,我们的系统部门不再控制防火墙。权力决定在他们的防火墙中设置一个规则,如果没有数据通过,则在 30 分钟后终止所有连接(关于必须跟踪连接和有限资源)。我对此无能为力。
作为服务器管理员和程序员,我的问题是这意味着我在编程时无法在后台运行 mysql 命令行客户端。如果我不发送查询(或以其他方式发送数据),当我在 35 分钟后尝试时,客户端检测到它不再有连接。我每次都必须重新连接。
在 SSH 中,我可以设置一个 keepalive,这样我就可以全天保持连接打开。mysql 命令行客户端是否有类似的可配置选项?我找不到任何东西,因为“Mysql Keepalive”和类似搜索都返回编程语言中后端连接的结果。
每次我想打开一个需要root权限的GUI程序时,我都必须输入密码。例如,我打开突触并输入密码,然后关闭它,一秒钟后决定重新打开它,它再次要求输入密码。Ubuntu 9.04 不是那样的,它在会话之间有大约 1 分钟的超时。我想在较新版本的 Linux 上再次这样做。
我知道如何sudo在 Linux中使会话持续更长时间。我所要做的就是输入:
sudo visudo
Run Code Online (Sandbox Code Playgroud)
然后改变:
Defaults env_reset
Run Code Online (Sandbox Code Playgroud)
到(3 分钟):
Defaults env_reset,timestamp_timeout=3
Run Code Online (Sandbox Code Playgroud)
是否有类似的方法来更改gksu会话的超时时间?
我遇到了 IPv6 连接问题。只有那些。他们大约每 10 分钟超时一次(我想是因为地址更新)。
发生在我在一年左右的时间里尝试过的每种基于 debian 的 linux,x86 和 x64,跨不同的 PC,有线和无线。
我目前正在使用带有内核 3.13.0-37-generic x86_64(以前是 3.2.0-60)和 NetworkManager 0.9.8.8 的 Linux Mint 17.1。有时,当我尝试立即重新启动下载时,我会收到“没有到主机的路由”。因为我的 IPv6 地址似乎暂时消失了。
像这样:http : //pastebin.com/4Xida2qu
我正在运行双栈 IPv4 - IPv6 (PPPoE),这是我的 Netgear DGND3700v2 路由器(固件版本 V1.1.00.22_1.00.22)的配置方式:http ://i.imgur.com/YgxAyQb.png
有问题的网络配置文件设置为忽略IPv6,但无论如何我都在获取全球 IPv6 地址。更改为 auto 没有任何区别。这令人困惑,但我想这只是内核在做它的工作。
防火墙规则或缺乏规则没有任何区别,但它们基本上是:
iptables -P INPUT DROP
ip6tables -P INPUT DROP
iptables -P FORWARD DROP
ip6tables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
ip6tables -A INPUT …Run Code Online (Sandbox Code Playgroud) 当在预定义的时间内没有生成输出时,是否可以重新启动 systemd 服务?
我有一个显然可以挂起的脚本,但 systemd(或 Python 在这种情况下)没有检测到它,因此它不会进入失败状态。
但是,它确实会停止记录输出,因此我应该能够在一分钟内没有输出后重新启动服务。这可以用 systemd 实现吗?
我当前的系统文件:
[Unit]
Description=SOmething
After=network.target
[Service]
WorkingDirectory=/home/user/system/something
User=nobody
ExecStart=/usr/bin/python2 something.py
Restart=on-watchdog
RestartSec=10s
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud) 我想从一个 shell 脚本启动一个进程,允许它与用户交互(所以我不能只是后台它,获取 PID,启动,sleep然后是健全性检查和kill),但如果它在一段时间后仍在运行(比如说,两分钟),然后我才想杀死它。
目的是简单地为没有内置该功能的程序实现挂钟运行时超时。
有没有办法做到这一点,最好是从 bash shell 脚本?
我正在通过命令行(即truecrypt file dir)安装一个 truecrypt 容器。有没有办法让 truecrypt 在 中的给定数量的不活动后自动卸载容器dir?
我已经通过 SSH 使用 Linux 服务器几个月了,它仍然可以在其他地方工作,但出于某种原因,本周,它不能在办公室工作。
腻子说“连接超时”
有没有办法确定问题出在哪里?我可以在端口 22 或类似端口上跟踪路由吗?
只是为了澄清。我可以通过 SSH 连接到我的家庭 Linux 机器,然后通过 SSH 连接到服务器。我只是无法从工作中通过 SSH 连接到服务器。我已经联系了主机,我没有被阻止或列入黑名单或类似的事情。
我不知道一般如何解释这个问题,所以我就用这个例子:
#!/bin/bash
cleanup() {
rm "$myfifo"
rm "$mylock"
kill '$(jobs -p)'
}
writer() {
for i in $(seq 0 100); do
echo "$(date -R) writing \"$i\"."
echo "$i" > "$myfifo"
done
}
reader() {
while true; do
flock 3
read -st 1 line
status=$?
if [ $status -eq 0 ]; then
echo "$(date -R) reading \"$line\" in thread $1."
else
echo "$(date -R) status $status in thread $1.
break
fi
flock -u 3
sleep 10
done 3<"$mylock" <"$myfifo"
}
trap …Run Code Online (Sandbox Code Playgroud) 我知道我以前追踪过这个,但找不到答案。
当我在 CentOS 7(来自 X Windows GNOME 或 KDE)上启动 bash shell 时,TMOUT设置的变量会导致 shell 在指定的不活动时间段后超时。
该变量是只读的,因此我无法取消设置或更改它!
unset TMOUT
# prints bash: unset: TMOUT: cannot unset: readonly variable
export TMOUT=99999
# prints bash: TMOUT: readonly variable
Run Code Online (Sandbox Code Playgroud)
通常/etc/bashrc设置这些东西。我尝试使用以下方法找到它的设置位置:
grep TMOUT $HOME/.??* /etc/* 2> /dev/null
# not found
Run Code Online (Sandbox Code Playgroud)
所以我认为TMOUT实际上并没有设置/etc/bashrc它,或者它没有按照我正在寻找的方式设置。
已提出其他问题,但它们不一样或没有帮助。
我最近用更大的 SSD 更换了 SSD。我使用Clonezilla将旧磁盘克隆到新磁盘。之后,我使用GParted Live调整现有分区的大小,将交换分区推到磁盘的末尾。我也从 Ubuntu 16.04 更新到 18.04。
\n\n成功完成上述步骤后,我注意到启动时间变得更长了。我发现了一些类似的线程(下面链接)并尝试了那里的建议。然而,启动时间并没有减少到更换磁盘之前的时间。
\n\n这是我的原文/etc/fstab:
# /etc/fstab: static file system information.\n#\n# Use \'blkid\' to print the universally unique identifier for a\n# device; this may be used with UUID= as a more robust way to name devices\n# that works even if disks are added and removed. See fstab(5).\n#\n# <file system> <mount point> <type> <options> <dump> <pass>\n# / was on /dev/sda1 during installation\nUUID=e15b2ef7-c32d-46f5-a3a8-4bdc60285b4e / ext4 …Run Code Online (Sandbox Code Playgroud)