小编lee*_*d00的帖子

以正确的方式从 Linux 中的 bash 脚本自动运行备份

我写了一个 bash 脚本来备份 Moodle 安装。它工作正常,我已经测试了备份,但它有问题;当我做备份时,因为我sudo每次都必须输入密码,所以我必须亲自输入密码,而不是仅仅运行一个cron工作来自动完成。

现在我怀疑这与我不知道cron或使用 SSH 密钥有关;无论哪种方式,我都想自动化备份。

#!/bin/bash

# Turn on Maintance mode and log it...
logger "BEGIN Turning on maintance mode in moodle"
lynx -cmd_script=./backupScripts/turnOnMaintMode http://moodle.leeand00domain.local
logger "END Turning on maintance mode complete."

logger "BEGIN Creating Backup Directory"
export bkdir=$(date +"%Y-%m-%d")
mkdir $bkdir 
cd $bkdir
logger "END Creating Backup Directory"

#Get a backup copy of the database
logger "BEGIN Backing up the Moodle Database"
mysqldump -u moodleuser --password=XXXXX -C -Q -e --create-options …
Run Code Online (Sandbox Code Playgroud)

bash ssh cron backup

3
推荐指数
1
解决办法
3370
查看次数

info 命令是否显示手册页?

我正在寻找一种方法来跟踪手册页中的“超链接”,当我偶然发现该info命令时,该命令似乎显示与命令相同的信息,man但还允许您使用 Tab 键切换到超链接(遗憾的是没有 vim 键绑定,但箭头键工作)

但这让我想知道这个命令是否只是显示具有不同格式和显示功能的手册页……或者它是否显示了完全像一组单独的文档一样的其他内容。

man info

3
推荐指数
2
解决办法
415
查看次数

如何通过键盘最小化一个很棒的 wm 客户端?

您可以使用ModJ和在客户端之间切换ModK

您可以使用ModN.

但是一旦你最小化了一个客户端;您如何切换到它以便您可以使用其他键盘组合再次正常显示它?

当我使用ModJModK我所有的客户最小化得到跳过。

awesome

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

您如何知道进程退出时的返回码是什么以及该值通常记录在哪里?

如果一个进程运行并退出它返回一个非零状态(我个人更喜欢术语返回代码);甚至零状态我知道该值在那里(主要是因为我已经完成了 C++ 编程并且我知道你可以在你的main()方法结束时返回一个值......但也因为如果我运行类似的东西:

fuser -s ./myfile.txt && echo "a process is accessing your file

我知道echo如果从fuser进程返回的状态值是0,则唯一打印,如果不是,echo则一起跳过,因为:

“如果没有访问任何指定文件或发生致命错误,fuser 将返回一个非零返回码。”

现在我如何显示这个返回码来知道它的价值?因为如果你正在运行fuser使用-silent,如在脚本,它似乎重要的是知道的返回码/状态值,所以我可以告诉大家,不被访问文件和实际致命错误之间的区别。

此外,手册页中是否有一个共同的地方记录了进程的返回代码/状态,以便我可以看到该值可能意味着什么?或者是否有一份文件对返回代码应该是什么有标准?

process fuser

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

有没有办法告诉我自从我在 bash 中 ssh'd / 登录以来我运行了多少命令?

history在 bash 中运行命令,但它给了我一切......

我注意到我可以通过运行来限制以前显示的命令的数量history | tail -n <num-of-lines+1>;那么有没有什么方法可以只查看自登录以来我运行的内容,使用自登录 bash 以来运行的命令数量?

bash command-history

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

可以用grep搜索base64吗?

是否可以使用 grep 搜索 Base64 字符串?假设我有一个文本文件列表,我想找到其中包含的所有 Base64 字符串;有什么办法可以搜索到它们吗?我的意思是我知道它们通常以=or结尾,==并且它们还有字节序列,这些字节序列与它们在 base64 字符串中编码的字母相关。但至于一般搜索它们(在不知道编码内容的情况下),我真的不知道该怎么做。

grep base64

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

如果 $HOME 包含空格,则不会在 WSL 上读取 .bashrc

我最近:在 /etc/passwd 中为用户指定了一个主目录路径,其中包含空格?但是现在.bashrc当我打开 Ubuntu 16.04 LTS WSL 窗口时,我的源无法正确获取,所以我必须source手动进行...它适用于source ~/.bashrc,但奇怪的是不适用于source $HOME/.bashrc,但奇怪的是适用于source "$HOME"/.bashrc.

因此,Jeff在上一个问题上认为,问题可能在于其他东西在采购它时没有引用它。

事实上,一个类似的问题导致我fork git hub 项目,其中发生了类似的错误;我认为这是因为我在 Windows 上使用了 mingw64/git-bash,但这根本不是问题,因为现在它发生在 WSL 中......至少我认为是这样......

bash quoting home windows-subsystem-for-linux

0
推荐指数
1
解决办法
1577
查看次数

与linux匹配的相对日志文件?

我已经知道如何使用grepawk匹配日志文件中的某些内容,但是有没有办法执行以下操作?

  1. 匹配文件中的特定行...并将其包含在结果中。
  2. 从文件中 (1.) 的匹配行开始,直到匹配第二个字符串为止,并将它以及结果中的所有行包含在内。
  3. 然后从第三个匹配项开始从匹配项 (1.) 开始搜索,匹配第三个字符串并将其包括在结果中的所有行之间。

这样,如果正在搜索的内容是在 BEGINNING 和 END 的上下文中,您可以只搜索您正在搜索的内容发生的上下文。日志文件如下所示:

<several-1000-lines>
...[BEGINX]
some log a
<several-1000-lines>
...[First-string-i-search-for]
<several-1000-lines>
some log b
...[ENDX]
<several-1000-lines>
Run Code Online (Sandbox Code Playgroud)

然后我会在搜索后得到这样的输出[First-string-i-search-for]

...[BEGINX]
some log a
<several-1000-lines>
...[First-string-i-search-for]
<several-1000-lines>
some log b
...[ENDX]
Run Code Online (Sandbox Code Playgroud)

grep vim logs awk

0
推荐指数
1
解决办法
72
查看次数