小编λ J*_*kas的帖子

在 SSH 会话断开连接后保持进程运行

有时我想在回家之前启动一个长时间运行的进程,所以我创建了一个到服务器的 SSH 会话来启动这个进程,但是我想关闭我的笔记本电脑回家,晚饭后,我想检查我在下班前开始的过程。我怎样才能用 SSH 做到这一点?我的理解是,如果您中断 SSH 连接,您也会中断服务器上的登录会话,从而终止长时间运行的进程。

command-line ssh background-process

262
推荐指数
10
解决办法
24万
查看次数

如何为urxvt设置背景图片?

如何在 urxvt 中设置平铺背景图像?我在我的.Xresources文件中尝试了以下替代方案:

URxvt*backgroundPixmap: /home/jgg/Pictures/tiles/escheresque_ste.png;style=tiled

URxvt.backgroundPixmap: /home/jgg/Pictures/tiles/escheresque_ste.xpm

URxvt.backgroundPixmap: /home/jgg/Pictures/tiles/escheresque_ste.png;+0+0:tile -tr
Run Code Online (Sandbox Code Playgroud)

我还跑来xrdb -merge ~/.Xresources确保每次都更新配置。

我错过了什么?我需要安装一个库吗?

我在 Debian 7.4 (Wheezy) 系统上运行 rxvt-unicode (urxvt) v9.15。

linux terminal-emulator terminal rxvt urxvt

7
推荐指数
1
解决办法
6808
查看次数

使用 sed 在每一行的开头添加一个 URL

我有某个网页的 URL(见下文),其中列出了许多不同版本的软件包。

URL=http://ftp.gnu.org/gnu/wget/
Run Code Online (Sandbox Code Playgroud)

下面的一行代码从 HTML 中获取了最新版本的 tar ball 及其签名文件。

wget -qO- http://ftp.gnu.org/gnu/wget/ | grep tar | cut -d\" -f6 | tail -n4 | grep gz
Run Code Online (Sandbox Code Playgroud)

可能不是最短最有效的一个班轮,但是嘿,我正在学习,我愿意接受反馈。上面的结果是这样的:

wget-1.15.tar.gz
wget-1.15.tar.gz.sig
Run Code Online (Sandbox Code Playgroud)

现在,下一个逻辑步骤(至少对我),是管上方插入到输出 sed并追加$URL到每行的前面,使得输出看起来像:

http://ftp.gnu.org/gnu/wget/wget-1.15.tar.gz
http://ftp.gnu.org/gnu/wget/wget-1.15.tar.gz.sig
Run Code Online (Sandbox Code Playgroud)

然后我想通过管道将其重新导入wget以下载文件。

问题是:如何使用 将 bash 变量的值附加$URL到每行输出的前面sed?我尝试了以下方法:

sed "s/^/$URL/"
Run Code Online (Sandbox Code Playgroud)

但这只会给我错误:

sed: -e expression #1, char 11: unknown option to `s'
Run Code Online (Sandbox Code Playgroud)

我也知道基本概念是好的,因为当我使用以下时,我得到了很好的结果......

VAR="Gorauskas, "
echo "Jonas" | sed "s/^/$VAR/"
Run Code Online (Sandbox Code Playgroud)

所以,我的猜测是我需要以某种方式转义变量/中的所有字符 $URL......我在正确的轨道上吗?

bash sed wget

6
推荐指数
4
解决办法
4379
查看次数

MailX 作为 Systemd 服务运行时不发送电子邮件

我有一个 shell 脚本,它对我的​​ arch linux 系统上的一个文件夹运行 clamav 扫描,并应该通过电子邮件发送结果。这是代码:

\n\n
/usr/bin/clamscan -r -i /path/to/folder | /usr/bin/mailx -A gmail -s "Clam Scan Results $(/usr/bin/date +%F)" address@gmail.com\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果在 bash 命令行上运行,上面的一行代码可以正常工作,并且我确认在/etc/mailrc工作中配置的帐户并收到了电子邮件。但我希望它按计划运行,我设置了一个 systemd 服务单元来调用名为 ~/bin/virusscan.sh 的脚本,并设置了一个 systemd 计时器单元以在每晚凌晨 2 点触发它。管道之后的 mailx 部分始终在报告... email not sent

\n\n

SystemD 执行脚本的方式有显着差异吗?

\n\n

/usr/lib/systemd/system/virusscan.service

\n\n
[Unit]\nDescription=Daily virus scan\n\n[Service]\nType=simple\nExecStart=/home/username/bin/virusscan.sh\n\n[Install]\nWantedBy=multi-user.target\n
Run Code Online (Sandbox Code Playgroud)\n\n

/usr/lib/systemd/system/virusscan.timer

\n\n
[Unit]\nDescription=Execute virus scan daily at 2 AM\n\n[Timer]\nOnCalendar=*-*-* 02:00:00\nUnit=virusscan.service\n\n[Install]\nWantedBy=multi-user.target\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后我可以立即运行该服务来测试:

\n\n
sudo systemctl start virusscan \n
Run Code Online (Sandbox Code Playgroud)\n\n

服务运行时的状态如下:

\n\n
virusscan.service - Daily virus scan\n …
Run Code Online (Sandbox Code Playgroud)

email systemd mailx

2
推荐指数
1
解决办法
2750
查看次数