Articles of bash

为CRON分配环境variables

我有一个.sh脚本创build.tar.gz文件,并使用RSA密钥将其传输到远程服务器进行身份validation。 脚本将从terminal运行,但是当我尝试将其设置为Cron作业时,脚本将不会运行。 我收到来自Cron Daemon的电子邮件,声明此失败:“ /bin/sh: /home/backup.sh: Permission denied ”,并且该文件未传输到其他服务器。 我从这个askubuntupost中确定了最可能的原因, 这很可能是由于“ Cron ”将一组最小的环境variables传递给了你的工作。 修复似乎是包括的 #!/bin/bash PATH=/opt/someApp/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin # rest of script follows 任何帮助如何configuration这将是非常明显的。 我正在运行的Ubuntu Server 11.04 编辑: ls -la backup.sh给出-rw-r–r– 1 root root 1053 2012-10-13 15:08 backup.sh

如何检查shell运行的bash脚本

我很模糊如何在脚本中设置一个命令,只有当shell在X会话中运行时才能运行。 基本上,在〜/ .bashrc我设置我的键盘映射 setxkbmap -layout 'us,gr' -variant 'altgr-intl,extended' -option grp:alt_shift_toggle 如果我通过腻子连接,或者只是打开一个命令提示符窗口,我不希望这个命令运行。 另一方面,如果我有一个X会话正在运行(本地或远程),我希望这个命令运行。 我怎么能做到这一点在bash脚本中检查? 有一个bash环境variables,我可以看? 另外一些方法? 感谢您的帮助

我应该如何解决“-bash:promptpath:command not found”?

我的Turnkeylinux机器使用以下PS1环境variables作为bash提示符: PS1="${debian_chroot:+($debian_chroot)}\[\033[01;33m\]\u@\h \[\033[01;34m\]$(promptpath)\[\033[00m\]\$" 我将上面的代码插入到本质上是“Debian GNU / Linux 6.0 \ n \ l”的库存中,并且抱怨“promptpath”不可用。 我试过“哪个提示path”,其结果是NULL(它什么也没find)。 由于promptpath似乎不是一个程序,它是什么? 我必须做些什么才能使Debian机器上的promptpath可用,以便提示可以正常工作?

为所有用户运行脚本

我在/etc/profile.d/myscript.sh在我的ubuntu linux上放了一些脚本,但是这只对我的用户有效。 但是,只有用户login时才能使用sudo。 # myscript.sh export MYVAL="HELLO" echo $MYVAL // HELLO sudo echo $MYVAL // ?!

为你自定义的守护进程创buildgid / uid?

假设你已经创build了一个守护进程(自定义写),并且想为这个程序创build新的uid / gid。 有没有标准的做法? 例如 uid和gid应该是一样的吗? 该ID应该从1000开始? 或者任何? 我问的原因是目前我正在使用dynamic分配,但是当我有多台机器,似乎使用固定数字是一个不错的select? 更新:我正在使用Ubuntu

删除所有不包含冒号的词语

我有这种types的行的文件: blabla bla:bla whatever what:ever alpha bravo charlie del:ta 我只想保留包含冒号的单词。 所以上面的输出是: bla:bla what:ever del:ta 有没有人有任何想法?

调用'脚本'命令并从一个bash脚本中退出它

我正在使用linux脚本命令http://www.linuxcommand.org/man_pages/script1.html在交互式bash脚本中logging所有input和输出。 此刻我必须调用script命令,然后运行我的bash脚本,然后exit 。 我想运行script并从实际的bash脚本本身中exit命令。 我怎样才能做到这一点? 我已经尝试过script -a但是这对交互式脚本不起作用。 任何援助将不胜感激。

获取符号链接脚本的目录

我必须确定符号链接的脚本的目录。 /usr/local/src/myscript/myscript.sh /usr/local/bin/myscript.sh (Symlink to the one above) cronjob执行/usr/local/bin/myscript.sh。 在myscript.sh里面我试图确定原始位置(在这种情况下是/usr/local/src/myscript/ )。 怎么做?

Lftp:服务器closures的error handling

如何在使用LFTP时检查服务器是否closures或发生其他连接错误,然后在发生此类错误时发送电子邮件。 做了一些这个工作。 这是正确的/最好的办法。 lftp -e "bye" -u $USER,$PASS $HOST 2> abc.log if [ ! -s abc.log ]; then echo "EMPTY" else mailx [email protected] < "Message" echo "NOT EMPTY" fi

以root用户身份运行drupal以运行bash脚本

我在redhat上存储一个网站,并使用drupal。 在网站上有一个button激活一个php脚本,php脚本使用exec来激活服务器上的bash脚本。 现在脚本没有运行,我猜是因为权限原因 – 运行bash的drupal用户没有root权限来运行bash脚本。 我如何添加用户作为根,并testing这个? 然后降级到正常水平。 所以我需要知道 – 如何查看当前用户,组和状态,并更改它们。 这是推荐? 我不是Linux专家。 谢谢。