Articles of shell

提取日志文件的最后一部分

我如何提取给定行之后的文件的所有内容? 该行可以通过确切的内容或正则expression式进行匹配。

从没有本地邮件服务器的shell脚本发送电子邮件

我怎么能从一个shellcript(通常是cronjob)发送电子邮件,而无需在同一主机上运行邮件服务器。 使用smtp服务器。 运行Ubuntu。 我看了各种教程,但无法find一个合适的方法(简单和安全)。 谢谢 斯文

使所有帐户使用相同种类的Bash

在一个专用的服务器上,我们使用的shell在帐户之间的设置是不同的,这是相当令人不快的。 当我ssh进入大多数用户时,我得到: [user@machine some_dir]$ 但是,有一些帐户我得到: bash-3.2$ 我为很多机器保留了大量的shell,并且有很多不同的账户。 我有能力让每个人都拥有相同的~/.bashrc ,但我也相信在/etc有一个全局configuration 什么是最快的方式来确保我得到同样的shell每当我ssh ?

encryptionshell脚本

我们有几个用于备份/数据库转储目的的shell脚本,其中有用户名/密码信息。 有没有什么办法可以做,而不是SHC似乎有一些问题。

如何检查pptpd软件包是否已安装并将其删除?

我需要检查是否安装了RPM软件包pptpd,忽略版本。 如果是我想删除它。 如果不是,那么检查/etc/pptpd.conf和/ etc / ppp /是否存在。 如果对于任何一个或两个是,则rm -rf。

Shell脚本=命令“testing”=简单的问题

启动脚本的摘录如下所示: ENABLED = 1 testing“$ ENABLED”!=“0”|| 退出0 问题是,无论Enabled设置为0还是1,脚本总是在该行退出。 我查了一下“man test”,就我所知,testing总是评估expression式,然后用返回码退出(!!)? 它是否正确。 那么这个脚本在这一行里总是会退出,不pipe这个variables的值是什么? (所以它的越野车)。 谢谢!! 延

用for循环使用数组和if列出文件

我写了一个脚本来检查不同目录中的文件,并希望这个脚本在文件不存在的情况下向我显示错误。 但是由于循环,它显示了ERROR和NO ERROR。 要调整,以便我只能得到错误或无错误的情况下,一个或多个文件丢失或全部存在到他们的目录。 files=("/my/path/to/file1.tar.gz" "/my/path/to/file2.tar.gz") for i in "${files[@]}" do ls -l $i if [ $? -ne 0 ]; then echo "ERROR" else echo "NO ERROR" fi done 我不能添加退出,如果我将添加,然后下面的脚本的其余部分停止。 ls并不重要。 重要的是检查文件的存在。 它可以是任何方式,如果[-e“/ path / to / file”]等。但是错误很重要,因为如果错误或没有错误,我会发邮件给自己,这就是为什么它的重要性。 你能解释一下,为什么你用'set -e'? 它不工作,因为我想要的。 其逐行打印信息。 但我希望它存储所有信息和打印机错误,如果任何一个丢失或没有错误,如果全部存在。 怎么可能做?

Cron进程没有启动

我有一个用cron作业创build的ec2映像。 这些工作无法运行; 我发现cron进程本身还没有开始。 所以,我在/etc/rc.d/rc.local中包含/ usr / sbin / cron并创build了另一个映像。 但由于某些原因,cron进程不能在启动时启动。 如果我重新启动机器,cron进程运行。 它启动时不运行! 为什么会发生这种情况? 另外,有没有其他的select呢?

转义cron中的特殊字符

我使用以下命令将整个目录复制到另一台服务器。 发送服务器: cd /var/log/ && tar c mysql > to_analyse.tar && nc 10.10.10.99 1236 < to_analyse.tar 接收服务器: mkdir -p /var/log/splunk/from_217 && cd /var/log/splunk/from_217 && nc -l 1236 > to_analyse.tar && tar -xf to_analyse.tar 它按预期工作。 但是,当我把它添加到cron(复制粘贴与适当的时间),它不起作用。

RSync shell脚本无法以CRON运行,手动运行良好

我有一个运行Rsync的简单shell脚本。 它运行良好,如果我从命令行手动调用它,但是当我把它设置为CRON作业,我得到以下错误: rsync: failed to open exclude file exclude.txt: No such file or directory (2) rsync error: error in file IO (code 11) at exclude.c(1000) [client=2.6.8] 我在shell脚本中使用以下内容: –exclude-from 'exclude.txt' 该文件存在,脚本运行正常(尊重排除)手动运行时。 由CRON作业和exclude.txt调用的shell脚本位于相同的目录中。 我试图运行的整个脚本如下所示: rsync -avrhgo –exclude-from 'exclude.txt' –progress –stats –delete-excluded -e "ssh -p XXXXX" / XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX