我完全吮吸Bash / Python / Ruby / Perl脚本(需要练习/学习更多),所以我要求一点帮助:-) 我需要将约60个Maildirs的内容移动到其父文件夹,并在Linux机器上重命名该父文件夹,当然,我可以使用'mv *。[^。] * ../'来执行此操作。其重复多个文件夹,我想完成。 所以目前我有/some/folder/prefix-user.name/Maildir/,我想最终: /some/folder/user.name/其中包含Maildir的内容。 两个单独的脚本将是好的,实际上它可能会更好,所以我有多个例子来学习如何做这种重复的function自动化:-) 提前谢谢你的帮助!
我已经通过浏览器启动了一个PHP脚本,并且由于循环错误,甚至在closures浏览器之后脚本仍然被执行。 我注意到,因为该脚本正在logging错误消息到我的日志文件(path已知)。 我们有一个Apache服务器,许多开发者一起工作,用户是nmdev 。 那么如何才能知道哪个进程正在运行并logging到我的日志文件? ps -afe | grep php53 ps -afe | grep php53给了我今天很多过程,如: nmdev 26518 24151 0 11:51 ? 00:00:00 /opt/xxx/yyy/apache-php5/bin/httpd -k start
我正在执行supervisord执行gunicorn。 我的问题是当我的脚本包含CURR_DIR =`pwd -P`并通过supervisord运行脚本时,它停止了这个过程。 我的脚本位于/var/www/conf ,我希望`pwd P`在运行脚本时返回/var/www/conf 。 我试过PWD,而且不会返回/var/www/conf 。 当我在supervisord之外运行脚本时,`pwd -P`工作。 但是,如果我硬编码CURR_DIR = /一些/目录,然后supervisord运行脚本没有问题。 这是我的脚本 #!/bin/bash NAME=myproj GUNICORN_EXEC=/home/user/.virtualenvs/tscoop/bin/gunicorn CURRENT_DIR=`pwd -P` # does not work: causes "STOPPED" error in supervisord CURRENT_DIR=/var/www/conf # works ok export GUNICORN_CONF=${CURRENT_DIR}/gunicorn.conf echo "Starting $NAME" exec $GUNICORN_EXEC -c $GUNICORN_CONF exit 0 这里是我从supervisorctl shell得到的错误信息: supervisor> status myscript STOPPED Aug 27 09:57 PM […]
有人能给我一些亮光,指向正确的方向吗? 我想在bash中创build一个脚本,在Tomcat应用程序启动期间检查日志中的exception。 这个脚本应该能够通过inotify来dynamic检测新文件的创build。 该脚本应该不断检查日志文件中新行的日志目录,并将包含单词Exception:或ERROR文件写入/var/log/errorcheckernotifier.txt 。 当脚本检测到这一行INFO: Server startup in时应该在/var/log/errorcheckernotifier.txt写入TOMCAT IS STARTED ,并在启动过程中检测到exception的数量。 这个脚本不应该覆盖errorcheckernotifier.txt中的errorcheckernotifier.txt 。 追加它。 我怎样才能保持这个脚本运行,并检测进一步的启动,计数exception等
我对HPC环境相当陌生。 在使用8个内核的节点上运行作业并在使用I内核的8个节点上运行相同的作业,在性能或使用的壁挂时间方面是否有区别。 PS:我正在开发一个项目,其中涉及在集群中运行一个脚本,大约需要2-3天才能完成输出。 因此,这样的疑问,以避免不相关的testing。
我希望我的cron脚本在由系统用户交互式运行(例如为了debugging目的)时静静地执行(对于cron,因为我想在接收电子邮件的时候,当且仅当我得到错误)时,它们会被verbosly执行。 我已经在我的脚本中尝试了这个: case "$-" in *i*) echo "this shell is interactive" > /tmp/log; *) echo "this shell isn't" > /tmp/log; esac 但即使交互式运行(/ bin / bash /tmp/my_script.sh),它总是返回“这个shell不是”和 echo $- 在shell脚本中返回hB而不是hiB。 我也试过了 if [ -z $PS1 ] 认为cron没有设置$ PS1,但是从提示符echo $ PS1再次返回这个variables,并且在脚本中交互地返回任何内容:/ 我想知道为什么交互式(/ bin / bash my_script.sh)这不会返回$的值 – 也不是$ PS1的值。 非常感谢您的帮助!
设置 我有一个脚本/etc/cron.hourly/msm-hourly包含这个: #!/bin/sh LOGPATH='/opt/msm/servers/cronscripts' LOGFILE="$LOGPATH/msm-start.log" # Make restart dead servers echo "" >> $LOGFILE && /bin/date >> $LOGFILE && /etc/init.d/msm start >> $LOGFILE 每隔一小时: 在日志文件中创build一个新行 添加date 然后输出msm start命令 它可以从命令行运行, 也可以在/etc/cron.daily/ 问题 从命令行运行时的输出如下所示: [ msm-hourly.log ] Thu Sep 12 20:56:51 UTC 2013 [ACTIVE] Server already started. 但是,在离开它运行一段时间后,每次迭代的输出如下所示: [ msm-hourly.log ] Thu Sep 12 20:56:51 UTC 2013 […]
好吧,这是最后一次尝试,看看我是否能够挽救我不小心做的事情。 我不小心做了“ command >〜/ .profile”而不是“ command >>〜/ .profile”在我的电脑上。 我没有版本控制(从来没有再次发生),由于.profile当时没有在编辑器中打开,我没有任何备份文件或Vim缓冲区中的现有版本。 我现在唯一可能想到的是,我仍然有一个terminal会话,在我上面的错误之前,运行〜/ .profile文件中的行。 我的问题是:有没有办法获得当前执行的源代码? 如果我运行,也许更明确和通用 source ~/.profile 有没有什么方法可以查看在terminal会话中执行的内容,而不是查看源文件? 经验教训,版本所有你的dotfiles。 提前致谢。 -Hassan
我发现一个initscript由于某种原因坚持以root用户身份启动指定的应用程序。 我无法围绕为什么这样做,任何提示? 该脚本在Redhat Enterprise Linux 5.9上运行。 #!/bin/bash # # Start/Stop apfe. # # chkconfig: – 62 38 # description: apfe # Start script for an apfe process. # Apfe does not normally run as root, so we change user # and call the real script in $USERDIR. STARTUSER=apfe USERDIR=/app/apfe/apps/apfeutils/bin PROGNAME=apfe su – $STARTUSER -c "$USERDIR/$PROGNAME […]
如何从源文件复制文件 /backup/cpbackup/daily/a1/public_html/index.html /backup/cpbackup/daily/b2/public_html/index.html /backup/cpbackup/daily/c3/public_html/index.html /backup/cpbackup/daily/d4/public_html/index.html /backup/cpbackup/daily/e5/public_html/index.html /backup/cpbackup/daily/f6/public_html/index.html 到目的地 /home/a1/public_html/index.html /home/b2/public_html/index.html /home/c3/public_html/index.html /home/c4/public_html/index.html /home/e5/public_html/index.html /home/f6/public_html/index.html