Articles of bash

用SEDreplaceLineFeed \ x0a

我必须在日志文件中删除大量的换行符(hex\ x0a)。 我只是有sed来解决这个问题。 我知道有点复杂 你有想法如何解决这个问题? 这里是一个示例文本文件: http ://s000.tinyupload.com/index.php?file_id= 05715208147126674999 hexdump -C hexprob.txt 00000000 45 0a 69 0a 6e 0a 66 0a 61 0a | Einfa | 我使用下面的代码来删除'E': sed -r's / \ x45 // g'hexprob.txt | hexdump -C 00000000 0a 69 0a 6e 0a 66 0a 61 0a | .infa | 但是,如果我想删除'\ x0a'它不工作: sed -r's / […]

两个数据库同步备份

我有一个系统需要两个数据库才能工作。 我需要一个脚本来备份两个数据库在给定的时间点。 我需要数据库同步,所以我需要确保备份不会允许其中一个数据库的更改备份时。 mysqldump db1 db2 > db1_db2.sql 上面的代码是否适合这个。 它会locking两个数据库的备份时间,所以我会得到同步备份? 什么是实现这一目标的正确方法? 我将如何做到这一点,但每个数据库的分离文件? 编辑: 大多数表使用InnoDB引擎,但使用归档引擎的重要表less有几个。

rsync不会删除目标中的文件夹

我知道在这里有一些相同的主题的任务,但没有答案帮助我。 首先,这是我的脚本。 它应该从源文件复制到目的地(保留所有权利等)。 如果文件或目录在源中被删除,它也应该在目标中被删除。 哪个不正确工作。 #!/bin/bash ## Basic RSync Command RCMD="rsync -rulpEXogtzh –stats –delete –force" DDIR="/tank/bak/s1/archive/" SDIR="/tank/bak/s1/backup/" CDAY=`date '+%u'` echo "Archive Number: ${CDAY}" echo "Archiving current backup" $RCMD $SDIR $DDIR/$CDAY 如果我在源中有以下目录: /etc /home /root /usr 并同步它们我在目标中有以下目录: /etc /home /root /usr 所以这工作正常。 现在,当我从源代码删除/ usr时,我的源代码如下所示: /etc /home /root 但是当我再次运行脚本时,我的目标仍然是这样的: /etc /home /root /usr 所以不知何故rsync忽略 – 删除 rsync输出这个: […]

SSHlogin失败“-bash:加载共享库时出错:需要glibc 2.5或更高版本的dynamic链接器”

我在我的一台生产服务器和它非常老的RHEL 4主机上做了一个错误。 由于最近的“shellshock漏洞”,我错误地把这个bash升级到了RHEL5的repo版本。 现在我正在-bash: error while loading shared libraries: requires glibc 2.5 or later dynamic linker出现错误-bash: error while loading shared libraries: requires glibc 2.5 or later dynamic linker 。 完整的错误: ssh [email protected] -bash: error while loading shared libraries: requires glibc 2.5 or later dynamic linker 现在我无法login到服务器也尝试重新启动主机与旧版本的内核和所有,但没有奏效。 我尝试重新启动主机进入单用户模式,但它也不能正常工作。 我完全陷入这个问题,对我们来说非常关键。 谢谢,

pg_basebackup自动密码

我有一个主从数据库设置。 master数据库位于安全的networking上,只有postgres端口被允许通过从数据库服务器。 数据库需要被保护,只有pipe理员有数据库密码。 这些服务器也位于远程站点,无需访问pipe理员即可访问。 我发现如果两个连接之间的连接中断了很长一段时间,从属数据库将会被破坏/不同步。 我写了一个脚本来重新同步从数据库,但我面临的问题是,一旦pg_basebackup运行它会提示input密码。 我需要一个简单的方法将密码传递给pg_basebackup命令。 sudo -u postgres pg_basebackup -h <masterDB-IP> -D /var/lib/pgsql/9.3/data -U rep -v -P 有什么build议么?

以这两种方式设置环境variables有什么区别?

对于我正在开发的一个项目,我们需要nginx和lua,我们就这样开始: MYVAR1=some_value MYVAR2=some_value /usr/local/openresty/nginx/sbin/nginx -p `pwd`/ -c nginx.conf 一切正常。 相反,如果我们这样做: export MYVAR1=some_value export MYVAR2=some_value /usr/local/openresty/nginx/sbin/nginx -p `pwd`/ -c nginx.conf 然后,在工作进程内运行的lua脚本抱怨MYVAR1和MYVAR2没有设置。 这两者有什么区别,为什么在第二版中nginx + lua没有选中呢?

命令'getent'

第1部分 getent应该是一个可执行文件吗? 在我的zsh设置中,我可以看到getent实际上被定义为一个函数 $ which getent getent () { if [[ $2 = <-> ]] then grep ":$2:[^:]*$" /etc/$1 else grep "^$2:" /etc/$1 fi } 如果我想从bash shell执行它, bash -c "getent passwd user" 我得到一个getent: command not found错误。 第2部分 在Mac OSX中,无论用户标识是否有效, getent都会失败。 事实certificate,用户标识不保存在/etc/passwd文件中。 为什么是这样? 还有什么替代方法?

用像logrotate这样的后缀拆分大的日志文件

在我看到我忘了在一台服务器上为php5-fpm.log添加一个logrotate-conf,现在看到它已经变得非常大了,我在问自己如何将这个日志文件拆分成单独的文件,像logrotate这样的后缀会产生。 你知道…像这样的错误从来没有发生过: – P 但是我最近想到的是: split -C 10m -d php5-fpm.log php5-fpm.log. …但这是生产文件,如: php5-fpm.log.00 php5-fpm.log.01 php5-fpm.log.02 … 从后缀中删除前导零将是一个简单的任务,可以很容易地手动完成。 但是,这里是我的问题:我怎样才能恢复后缀,使后缀最高的文件成为最低的?

在循环中分割文件名并引用每个部分

我有一个目录中的文件列表,例如 file.name.aaaaaa.111111 file.name.bbbbbb.222222 file.name.cccccc.333333 我需要一种方法来获取每个文件,将其分割为“。” 然后使用每个部分它将被传递给一个mysql查询。 我有以下几点: for file in $localdir/file.name.* do filename=`basename "$file"` for i in $(echo $filename | tr "." "\n") do echo $i done done 我怎样才能参考个别部分? 因为我只需要MySQL查询的“aaaaa”和“11111”?

可靠的自定义事实返回string不是数组

我有一个自定义的事实,我的服务器检索客户数据。 这在机器上正常工作,并返回有效的JSON。 我可以写输出到另一个事实文件,这也很好地工作。 但是,当我做了安全的设置脚本返回所有的数据作为一个string在一个键和一个空的值,如下所示: "custom_fact": { "{data…}": {} } 这是我的事实脚本: #!/bin/bash #{{ ansible_managed }} ### extracting information from moodle instances cd /home/vhosts/moodle function getinstances() { MDL_INSTANCES=`find * -maxdepth 0 -not -name "_*" |xargs echo` } getinstanceinfo() { INSTANCE_ARRAY=() for i in $MDL_INSTANCES do source /home/vhosts/moodle/$i/_update.conf firstname="$(mysql -u $UM_DBUSER -p$UM_DBPASS -h mysql -e 'SELECT firstname FROM […]