Articles of bash

备份同步脚本不起作用

我有一个文本文件,所有文件夹名称的date顺序,我试图调用一个脚本rsync一次备份文件夹,基本上合并所有增量备份。 #!/bin/bash filename=/home/user/Scripts/Testing/temp.txt while read filename do $ for f in ls -t /var/user-test/ | grep $filename; rsync -aL /var/user-test/$f /var/u-backup/secure/; done < temp.txt 此脚本旨在运行不同的备份文件夹并将其同步到一个文件夹中。 我的问题是这个脚本不起作用,两个这是合并增量备份的最佳方式

如何更新bash

我努力更新bash, yum update bash没有find任何东西,search显示: bash.i386 3.0-19.6 installed 在红帽企业Linux ES版本4(Nahant Update 6) 任何帮助将是伟大的。

Bash脚本来安装PostgreSQL

我试图编写一个bash脚本来在Debian 6 VPS上安装PostgreSQL服务器。 我一直擦拭服务器,我想写一些东西来自动安装它。 #!/bin/bash export PATH=/bin:/usr/bin:/sbin:/usr/sbin function print_info { echo -n -e '\e[1;36m' echo -n $1 echo -e '\e[0m' } function print_warn { echo -n -e '\e[1;33m' echo -n $1 echo -e '\e[0m' } function check_install { if [ -z "`which "$1" 2>/dev/null`" ] then executable=$1 shift while [ -n "$1" ] do DEBIAN_FRONTEND=noninteractive […]

bash脚本参数和错误捕获

我为一个cron作业创build了一个bash脚本,用于将上传的文件转换为几种格式,然后将其移动到另一个cron作业存储的另一个文件夹中,等等。 问题是我创build这个来自单个服务器的单个文件夹,而现在,我需要引用5个文件夹。 我宁愿不创build5个版本的这个脚本,只会在目标文件夹名称不同,但我不明白如何引用入站参数。 此外,如果有任何错误陷阱,这将是非常有帮助的…. 谢谢,斯科特 顺便说一句,这是一个Ubuntu 10.04操作系统。 这是我开始的。 #!/bin/bash echo "$(date) :: Looking for images convert and copy to ../outbox" SERVERNUM="$1:-1" # my first attempt at a default value # folders are 'web-1-photos', web-2-photos, etc. FILES=/home/tech/web-${SERVERNUM}-photos/inbox WORK_DIR=/home/tech/web-${SERVERNUM}-photos/outbox cd $FILES for currentFile in *; do if [ -e $currentFile ]; then echo " Converting $currentFile …" […]

从string创build参数列表的最佳方法

我有一个空格分隔的path列表的variables。 我需要将这些path作为参数发送到程序script.sh -i /dir1 -i /dir2 。 什么是创build这样的参数列表的最佳方式? 像$(echo "$paths" | sed 's|\([^[:space:]]\+\)|-i \1|g)会工作,但它是不可读的,因为它是生成文件的一部分。

从RT_SiteConfig.pmparsing$ DatabasePassword的值

我正在编写一个Bash shell脚本来每天备份我们的请求跟踪器(RT)MySQL数据库。 而不是在shell脚本中对MySQL数据库用户的密码进行硬编码,我想从RT的RT_SiteConfig.pm文件中parsing它。 RT_SiteConfig.pm中的相关行如下所示: Set($DatabasePassword , 'db_pw_here'); 给出上面一行,只提取string“db_pw_here”的“最干净的”方法是什么?

无法在Ubuntu 11中成功安装RVM

我之前在Debian和OSX中安装了RVM,没有任何问题,但是在Ubuntu中这样做让我疯狂。 我尝试了不同的教程, 这是最后一个。 我认为一切都很顺利,直到我不得不更新.bashrc,这似乎什么都不做。 当我检查RVM是否被识别为$ type rvm | head -n1的函数 $ type rvm | head -n1我只得到“未find”。 如果我尝试执行RVM,则会收到“rvm未安装”消息。 也许这个教程已经过时了? 谁能帮忙? 这是在Virtualbox上运行的Ubuntu 11的全新安装,如果有用的话。 这是我的.bashrc现在看起来,在尝试另一种方法build议在这里的评论 # ~/.bashrc: executed by bash(1) for non-login shells. # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) # for examples # If not running interactively, don't do anything [ -z "$PS1" ] && return # […]

shell脚本不能作为cron工作,尝试了每个解决scheme,出于想法

我有以下脚本来更新基于MD5比较的文件,脚本从命令行完美工作,但是当我把它放在cron没有任何反应。 我只有root用户在系统上,脚本属于root,在crontab中调用脚本是这样的:/ bin / bash /home/papa/systems/sron.sh 这是我的脚本,我已经尝试了所有的解决scheme,直到现在,但没有进展,请帮助。 #!/bin/bash PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" MD5FILE=/tmp/.md5oldjar MD5FILENEW=/tmp/.md5newjar FILE_TO_CHECK=/tmp/rose.jar URL=http://xxxx DESTINATION=/tmp rm -rf $FILE_TO_CHECK wget $URL -P $DESTINATION #echo generating MD5 for $FILE_TO_CHECK echo `md5sum $FILE_TO_CHECK` > $MD5FILENEW MD5PRINT=`cat $MD5FILENEW` if [ -z "$MD5PRINT" ]; then echo "ERROR Recived an empty MD5PRINT thats not valid, aborting" exit 1 fi OLDMD5PRINT=`cat $MD5FILE` if […]

比较/计算像文件

我有定期的计划生成报告。 这些报告遵循简单一致的格式(具体而言,这些是“OProfile分析报告”)。 每行的格式是: UNIQUE_NAME,数 我想运行所有的报告,并计算(说)和每个unique_name的平均值。 这怎么可能呢?

使用tar来排除一个匹配模式的目录(但不是另一个)

我正在为一个网站做一个非常简单的焦油,但是有一个皱纹。 这里是网站的文件结构: … 文件/ 图片/ 图片/人次/ … 日志/ … 参观者/ 这里的问题是:我想排除主要访问者/目录中的所有文件 , 但是我希望images / visitors /目录中的所有文件都包含在tarball中。 我一直在尝试tar c –exclude-from='excludeList'作为“excludeList”的内容: excludeList 文件/ 参观者/ 不幸的是,由于images / visitor /中的文件与访问者/模式匹配,所以也被排除在外。 在一个完美的世界里,我可以用这样的东西去正则expression式: excludeList 文件/ ^访问者/ 但是这不起作用。 有没有办法做到这一点,直接通过焦油或另一种模式匹配命令?