Articles of bash

追踪shell命令的来源

在我们的一个服务器的apache错误日志(/ usr / local / apache / logs / error_log)中,我们看到一个经常运行的shell命令,它会抛出一个错误,如下所示: sh: list_price: command not found list_price是我们在超过50个网站的电子商务系统中使用的字段,当然没有可疑的。 问题是我们不知道如何传递给shell – 我们已经检查了exec()和system()的所有事件,我们不知道这是如何传递的。 有没有什么办法可以更容易地发现这个来源是什么,因为没有什么比上面提到的更有意义的输出。 仅供参考,在运行CentOS 5的服务器上,所涉及的站点都是PHP。

在bash中select性备份脚本

我一直在使用这个简单的命令(这就是我所能做的:)从N​​AS服务器的用户数据备份整个树一年。 cp -r /STORAGE /BACKUP-STORAGE/YYYY-MM-DD 不幸的是,经过一年的服务。 我的用户开始用很多照片和剪贴画(jpg,gif,bmp)来填充空格,并开始让我的备份过程变得更慢。 空间也是一个大问题。 现在我已经没有足够的空间存放一整天的备份。 我想我想从备份切换到仅备份非图像数据。 如何从备份中排除jpg,gif和bmp? 使用DOS XCOPY命令很容易,但我真的不知道如何在bash中做到这一点。 谢谢

shell脚本遍历文本文件并删除一个string

我有一个与用户列表一个目录中的几百个文本文件: &usera &userb userc &userd 请注意,有些不带领& 。 此外,在某些文件中,最后一行不会以换行符结尾。 在shell脚本中,通过所有这些文件并删除(比如说userb ,确保每个现有用户保持独立的路线的最简单方法是什么? 谢谢!

CentOS备份BASH脚本

我只是写了这个脚本来备份所有的东西到一个tar.gz文件。 它看起来好吗? 我怎么能得到的tar文件执行后自己转移到另一台服务器? FTP本身? 我打算把这个脚本放入每周一次的cron中。 #!/bin/bash rm ~/backup.tar.gz #removes old backup BACKUP_DIRS=$HOME #$HOME is builtin, it goes to /home/ and all child dirs tar -cvzf backup.tar.gz $BACKUP_DIRS # run tar -zxvf to extract backup.tar.gz

在stringbash中连接variables

我想杀死指定端口(variables)的进程 export PORT=3030 netstat -ntlp | awk '$4~/:*${PORT}$/{gsub(/\/.*/,"",$NF);cmd="kill -9 "$NF;system(cmd)}' 但可变的PORT没有得到的命令。

在shell中输出奇怪的字符

在过去的几年中,有一些Linux系统在运行各种命令时会输出奇怪的字符。 以下是其中一台机器上sensors命令的输出示例: acpitz-virtual-0 Adapter: Virtual device temp1: +45.5°C (crit = +126.0°C) coretemp-isa-0000 Adapter: ISA adapter Core 0: +44.0°C (high = +100.0°C, crit = +100.0°C) Core 1: +45.0°C (high = +100.0°C, crit = +100.0°C) nouveau-pci-0100 Adapter: PCI adapter temp1: -62.0°C (high = +95.0°C, crit = +99.0°C) 注意到所有地方的字符。 为什么在一些环境中发生这种情况而不是其他情况 我能做些什么来纠正这个问题?

来自bash的便携式守护进程pipe理(sysvinit / upstart / systemd)

我有一个小脚本需要停止服务。 这需要工作在Ubuntu(14.04),debian和Arch。 现在我所做的是类似的 case $(cat / etc / issue)中 * Ubuntu的*) 服务命令 * Debian的*) /etc/init.d/servicename命令 *拱*) systemctl服务命令 ESAC 有没有更好的方法来做到这一点?

在Ubuntu的Bashpipe道答案

在一个bash脚本中,我想知道如何pipe道答案,例如: ssh -l username -i /home/ubuntu/.ssh/id host.com < yes ssh连接会询问我是否想继续连接,并且我想自动input答案,然后input,但我的脚本“<yes”似乎不起作用。 有没有人知道如何正确input和pipe道在Ubuntu下bash响应“是”?

bash脚本 – 从第N行打印到EOF

我希望能够打印从bash的行数,如:行号(从顶部算起) – >文件的结尾 看来尾巴只会从底部算起。 有谁知道如何做到这一点? 谢谢。 我试过以下 # Where $1 is the file I'm reading in # Get line number of error: LINENUM=$( grep -n "$LAST_ERROR_DATE" $1 | egrep $LOG_THRESHOLD | grep $LAST_HOUR: | sed 's/:/ /g' | awk '{print $1}' | head -n 1 ) echo $LINENUM # This returns 995 # Print everything […]

可以以及如何通过bash脚本在远程服务器上运行命令?

我觉得有点傻,问什么似乎是一个可以解决Google的问题,但是我试图编写一个重复的任务(1)ssh'ing到远程服务器(2)在我的主目录下运行script.sh,和(3)复制/粘贴输出。 如果我能写一个脚本来为我做这个工作,那将是非常好的。 我写了一些bash脚本,从这些机器scp文件,但从来没有一个在这些机器上运行脚本。 是否有可能在机器1上有一个脚本,并通过机器nlogin并执行机器2上的script.sh,然后在机器1上卸载输出? 如果是这样,怎么样?