Articles of shell

replaceLinux服务器上的XML文件中的date

我想从2013-01-21到January 21更改XML文件内容的date格式 以下脚本适用于我的Mac,但不适用于Linux服务器(我将把它作为每日cron作业运行)。 #!/bin/bash while read line; do case "$line" in '<date>'*) echo '<date>' date -j -f %F `echo "$line" | sed -e 's/<date>//' -e 's-</date>–'` '+%B %d' echo '</date>' ;; *) echo "$line" ;; esac done < file.xml > newfile.xml 我得到的错误是date: illegal option -f 有没有办法让这个在Linux服务器上工作? 来自XML文件的片段: <show> <recordKey>SWTZ-TD-FA32DE3DE4701567</recordKey> <name><![CDATA[Turnstyle Music Group Presents: bandname]]></name> <city><![CDATA[New […]

ZSH转义/文件匹配模式

这从命令行工作: scp -r ^.git b:/home/wopi/blyzics/. 当我把上面这行代码粘贴到这样的脚本中时: #!/usr/bin/env zsh scp -r ^.git b:/home/wopi/blyzics/. 并运行它 ./deploy.sh 我得到: ^.git: No such file or directory 为什么?

IPv6反向不能解决Linux shell“最后”和“谁”

IPv6在DNS中正确parsing: > host 2607:fa18:0:2::17 7.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.0.0.0.0.0.8.1.af7.0.6.2.ip6.arpa \ domain name pointer sine.xmission.com. 但是,反向DNS名称通过Linux shell上的“last”和“who”不能正确显示: > who | grep pashdown pashdown pts/17 2013-03-08 07:30 (2607:fa18:0:2::17) 是否有一些交换机需要为Linux启动parsingIPv6反向login?

Mysql在cron上select查询不生成结果,但通过terminal可以

我们有一个C程序(来源如下)。 我们编译它: gcc -Wall -Wextra -g $(mysql_config –cflags) get1ReceiveSource.c $(mysql_config –libs) -lrt -o get1Receive 当使用./get1Receive在terminal上运行时,select会给出完美的结果。 我们使用cron条目每分钟转到cron作业的那一刻 /1 * * * * /usr/local/bin/get1Receive >> /var/log/myalert1.log 2>&1 我只是不能看到它得到任何结果。 我已经debuged使用gdb ,它完美的罚款,我已经设置了断点,一步一步,我可以看到它进入循环太好。 我也附加了env值,我怀疑mysql有问题吗? 有什么想法吗? C代码: #include <stdlib.h> #include <unistd.h> #include <pthread.h> #include <stdio.h> #include <time.h> #include <sys/time.h> #include <signal.h> #include <mysql.h> #include <string.h> #include <syslog.h> #define SMALLSIZE 20; int […]

无法访问Upstart脚本节中的源variables

我试图在一个暴发户脚本中使用/ etc / environment中定义的variables。 我可以将variables导出到subprocess,但由于某些原因,我无法在暴发户脚本本身中使用它们。 这工作: script . /etc/environment export NODE_ENV # node is able to read the NODE_ENV, wonderful! /usr/local/bin/node /path/to/app/app.js end script 但是,如果我试图在节中引入一些条件逻辑,那么它将失败: script . /etc/environment export NODE_ENV # ${NODE_ENV} is not set inside the stanza if [[ ${NODE_ENV} = 'production' ]]; then # this will never run /usr/local/bin/node /path/to/app/app.js fi end script […]

无法手动运行rc.local,并不会在ubuntu上自动运行

这是相当简单的。 我在这里创build了一个rc.local文件: /etc/rc.local 我使它可执行。 但是,启动服务器时不会运行。 我可以在目录中看到它,当我尝试手动运行时,我收到以下消息: root@:/etc# rc.local rc.local: command not found 我的rc.local文件如下所示: #!/bin/sh -e # FUNCTIONS function setup_logs { exec > >(tee -a /var/log/deploy.log) exec 2> >(tee -a /var/log/error.log) } # COMMANDS setup_logs apt-get update # Update aptitude list apt-get -y dist-upgrade # Upgrade aptitude programs cd /etc/spider && git pull # Update deployment […]

vMA上的APC Network Shutdown脚本

我正在尝试为3个ESX主机configurationAPCnetworkingclosures脚本,而且似乎并不能在我的vMA设备上运行我的testing脚本。 我试图validation我在一个名为“sandbox.sh”的testing文件中使用一堆echo命令正确设置了它。 这是我的脚本: #!/bin/sh #IFS=$(echo -en "\n\b") unset IFS export LD_LIBRARY_PATH=:/opt/vmware/vma/lib64:/opt/vmware/vma/lib export PERL_LWP_SSL_VERIFY_HOSTNAME=0 #Hosts #vMA is on host .131, so it will appear last hosts=( 192.168.47.130 192.168.47.132 192.168.47.131 ) ups_vm="vSphere Management Assistant \(vMA\)" mail_vms="Test" dc_vms="CITRIX" #search for exchange servers first, and shut down echo "Searching for Email VMs to shut down…" for host in ${hosts[@]}; […]

似乎无法得到expr substr工作

谁能告诉我我做错了什么? [ /jlr/sub/libexec/vmr-staging ] $ expr substr "onetwothree" 1 4 expr: syntax error 我从https://stackoverflow.com/a/220464/1150847获得了语法

禁止文件types(shell脚本wordpress安全)

我们最近把我们的服务器变成了SVN,这很好,但是当使用像WP Filebase这样的文件pipe理的时候,会导致很多问题。 保持上传文件夹同步也很困难,所以我们想closuresselect目录的SVN。 这让我想到了这个问题: 如果我们在某些目录中不允许使用某种文件types(php),并且某人上传了一个伪装成.jpg或其他文件types的shell脚本,那么这个文件会自动解压缩成一个.php文件。 还是会解压缩而不执行? 我不确定文件夹安全性/权限选项如何在此级别上运行。 目前使用IIS,尽pipe很快可能会转移到一个Linux的盒子。

Cron作业不会生成预期的日志文件

我试图用crontab执行一个shell。 cron作业执行shell但不会生成我需要的日志文件。 这是我用我的cron:10 * * * * /home/user/3nvo.sh 这是一个简单的shell,具有相同的结构: #! /bin/bash export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/MCMMX export OH=$ORACLE_HOME export SHLIB_PATH=$ORACLE_HOME/lib:/usr/lib/Motif1.2 export ORACLE_SID=MCMMX export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data export TMPDIR=/tmp export DESA_HOME=/home/manager LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH export FECHA=`date +"%d-%m-20%y_%H:%M:%S"` PATH=$PATH:.:/opt/bin:$ORACLE_HOME/bin:/bin:/usr/bin:/usr/ccs/bin:/usr/sbin:/opt/perl:/opt/p erl/bin:/usr/kerberos/bin ERROR="error_carga_nextone_$FECHA.log" WARNING="warning_$FECHA.log" DUMMY="dummy.txt" if [ -r $DUMMY ]; then echo "you have an instance open" >> $WARNING else echo "rest […]