在search如何删除shell脚本中的root权限时,我经常会看到使用su答案。 但是,当您使用su ,只需键入logout并返回原始用户的shell。 我有一个以root身份运行的bash脚本,最后我会这样做: exec su -c "external_com" – muser 这会导致以下进程树: PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command 1 root 20 0 37352 2500 2192 S 0.0 0.0 0:00.02 su -c external_com 5 muser 20 0 85548 6292 5156 S 0.0 0.0 0:00.47 └─ external_com 13 muser 20 0 85548 […]
我正在编写一个bash脚本,遇到了一个问题。 我使用普通的if / fi语句来推动我所知道的,并尝试使用它们来设置与拾取操作系统版本相关的variables,如RH 7,Debian 7,Ubuntu等。我遇到的问题是它只是不像我想的那样工作。 我用手运行每个部分,它工作得很好,但是当我把所有东西放在一个脚本中,什么都没有。 有一个更好的方法吗? 先谢谢你 value1=$(cat /etc/redhat-release | awk '{ print $4 }' | cut -c 1) value2=$(cat /etc/redhat-release | awk '{ print $3 }' | cut -c 1) value3=$(lsb_release -sr) value4=$(cat /etc/debian_version) if [[ $value1 -eq 7 ]] && [[ -e /etc/redhat-release ]]; then OS=RedHat VER=RH7 elif [[ $value2 -eq […]
我已经写了一个bash脚本来备份文件夹和文件从一台机器到我们的备份服务器。 我的目标是从每周备份中排除所有超过6个月的文件。 为此,我使用find命令来构build一个包含这些文件path的txt文件。 find . -type f -mtime -200 -fprintf $SCRIPT_DIR/Exclusions.txt "%P\n" 然后我使用rsync的“–include-from”选项。 rsync . -e ssh -qrtl –exclude-from=$SCRIPT_DIR/Exclusions.txt $USER@$DEST_SRV:$DEST_DIR 结果是备份工作,但不包括在内。 所以所有的文件都会在6个月以上的时间里备份。 我该怎么办? 提前致谢
问题:我试图阻止用户通过使用ctrl + c取消脚本。 以下脚本完全执行,除了坚持死亡的rsync之外,显示错误“由信号2终止”。 是否有可能避免rsync死亡? 如果是这样,我可以把它放在后台,还是应该在前台? 脚本: 陷阱''SIGINT SIGTERM SIGQUIT cd / tmp nohup rsync -e'ssh -o LogLevel = ERROR'-av –timeout = 10 –delete-excluded myapp.war myserver:/ tmp / </ dev / null> / tmp / teste 2> / tmp / teste2 let index = 0而[$ index -lt 400000]让index = index + 1完成 回声“脚本完成”回声“索引:$索引” 我怀疑ssh频道在rsync之前死了。 在rsync的pid中strace命令的输出结束之后: […]
我有以下脚本运行在raspbian上。 开始 #!/bin/bash /root/config/commands 2>&1 > /root/log/$HOSTNAME.log 命令 #!/bin/bash source /root/config/variables echo TestLine /usr/bin/lftp ftp://user:[email protected] -e "set ftp:ssl-allow no ; set net:reconnect-interval-base 5 ; set net:max-retries 2 ; mirror -e /testgroup/music /root/media ; quit" /usr/bin/mail -s "$HOSTNAME Report" $emailaddress < $logdir/$HOSTNAME.log“ 当我手动运行“开始”,我收到下面的电子邮件 TestLine Total: 1 directory, 4 files, 0 symlinks 当我使用cron运行它时,我收到以下电子邮件 TestLine 这是如何设置crontab -e的 @daily […]
我的问题是,我必须检查$目录中包含哪些文件,然后我必须创build一个新的文件与我指定的名称,并比较名称不存在于此目录(比较2个目录)。 以下是我的代码: directory=$(pwd -L "/$nameProject") read -p "Enter repo name: " nameRepo #Check if repo name exists in $directory if [$(find "$directory/$nameProject" -path "$directory/$nameProject/*")==$("$directory/$nameProject/$nameRepo")]; then instruction… 谢谢你的帮助!
我有一个python脚本,完全按照预期完成时,以root用户手动运行。 当我把脚本写入cron.daily时,崩溃100%的时间。 该错误是一个超时错误,但这个问题不是直接排除错误。 执行这个工作: $ /etc/cron.daily/myscript 但它通过cron自动运行时崩溃。 问题:根节点shell和环境/etc/cron.daily执行的有什么不同?
我想显示一个文件的ctime,mtime和atime,以及它是否具有扩展属性。 有2个命令可以做到这一点,但我没有能够把它们合并成一个单一的命令来给出一行输出。 find /tmp -maxdepth 1 -printf "%a _ %c _ %t _ %P\n" 给出类似于这样的输出: Thu Aug 27 09:51:11 2015 _ Thu Aug 27 09:48:40 2015 _ Thu Aug 27 09:48:40 2015 _ tempfile.tmp 和 ls -l /tmp 给出类似于这样的输出: -rw-rw—-+ 1 root root 5 Aug 27 04:39 tempfile.tmp 我只对ls输出中的权限之后的“+”符号感兴趣。 理想情况下,我希望输出与此类似: + Thu Aug 27 09:51:11 […]
我在/etc/profile.d/设置了超时来断开使用TMOUT非活动用户,这个工作很好,但是现在我看到用户只是通过保持一些前台进程打开,例如mysql来保持连接打开。 我意识到这可能是任何vim / less / etc,但是作为mysql-cli有各种超时的选项和重新连接断开连接(或不)有人发现了一种方法来强制退出mysql-cli连接断开倾倒用户回bash?
我试图通过PHP运行以下命令: $output = shell_exec('sudo /Users/Derk/Code/automation/psc/pdfs.sh 1'); 这将运行以下bash脚本代码: sudo /usr/local/bin/pdftk cvcheck_template.pdf fill_form data.fdf output output.pdf flatten sudo /usr/local/bin/convert -density 150 -gravity south -geometry +0+150 -composite output.pdf signature.png new_output.pdf bash脚本在命令行中完美工作,但是当我尝试通过PHP在Web服务器(MAMP)上运行它时,它不会提供任何输出。 第一个命令似乎可行,但第二个命令却什么也不给我。 任何帮助将非常感激。