Articles of bash

一个bash脚本的Cronjob随机停留2分钟

我一直在CEntOS 5.5机器上运行一个bash脚本,它检查远程mysql服务器上的复制。 该脚本创build一个临时locking文件,并计划每隔一分钟在Crontab中运行。 但是偶尔,cron工作不同步 – 暂停或延迟两分钟的工作,并尝试一次运行三个工作。 这是造成虚假警报,洪水我的邮箱说:“locking文件存在!可能的冲突”。 以下是可能感兴趣的脚本部分: #!/bin/sh lock_file=/tmp/slave_alert.lck finished=0 # Alert function function mail_alert () { cat /var/log/replication_check.log | mail -s "Replication check errors!" [email protected] } # Check if lock file exists if [ -f $lock_file ]; then echo "Lock file exists! Possible conflict!" > /var/log/replication_check.log 2>&1 mail_alert exit 1 else touch $lock_file […]

bash卡在3.2-24.el5(Redhat)

我试图在我们的红帽企业Linux服务器版本5.6服务器上更新bash。 但它不会晚于“3.2-24.el5”find更新。 我已经检查过,并且存在shellshock漏洞。 我已经做了百胜 – 干净,百胜更新bash,百胜重装bash。 但它总是回到刚才的版本“3.2-24.el5”。 谁能帮忙? 谢谢

删除文件中没有按顺序出现的重复行

uniq工具不是一个好的select,因为它只能在重复的行上出现,即在前面的行之后出现,即按顺序。 相反,我想要的东西,将文本文件dupl.txt 。 另外,我不需要保留sorting。 aaa bbb aaa 成 aaa bbb 要么 bbb aaa

Nagios bash语法错误

我想引用这个问题到下面的post,我得到Skript: Post with Script 我正在使用Bash 4.1.2(1),当我尝试执行脚本时,出现以下错误消息: ./check_disk_by_size.sh: Zeile 9: [: ==: Einstelliger (unärer) Operator erwartet. (standard_in) 1: syntax error ./check_disk_by_size.sh: Zeile 13: [: -eq: Einstelliger (unärer) Operator erwartet. (standard_in) 1: syntax error (standard_in) 1: syntax error ./check_disk_by_size.sh: Zeile 16: [: Zu viele Argumente. (standard_in) 1: syntax error ./check_disk_by_size.sh: Zeile 19: [: -eq: Einstelliger (unärer) Operator […]

通过cronjob运行一个bash脚本来重新启动服务

首先。 我什么都不知道bash脚本。 第二,这是我的一个很大的问题,我不知道该怎么做。 目前,我有这个网站。 这是用PHP编写的。 并使用邮件服务器和推送通知,这些都是使用supervisord作为守护进程运行的。 我的网站运行良好,但不时,我的邮件服务器和推送通知不工作,因为supervisord停止工作; 我不得不手动重新启动,使其重新工作。 我在想,我能做些什么来让它自动启动。 那么一个想法popup。 通过bash脚本和cron作业重新启动服务。 我知道这有点愚蠢。 我创build了一个bash脚本。 只是一个简单的。 #!/bin/bash # A simple script echo " — Restarting Supervisord –" sudo service supervisor stop sudo service supervisor start echo "Done!" 当我通过手动运行 ./supervisord_restart.sh 这是我得到的输出 — Restarting Supervisord — Job for supervisor.service failed. See "systemctl status supervisor.service" and "journalctl -xe" for details. […]

sftp返回代码0即使有错误报告“无法创build目录:失败”

我正在尝试编写一个Bash脚本负责在远程服务器上创build一个文件夹。 片段: !/bin/bash -e echo "Creating remote folder." echo mkdir test_folder | sftp -oPort=22 192.168.0.11:/tmp if [[ $? != 0 ]]; then echo "Transfer failed!" exit 1 else echo "Transfer complete." fi echo $? 输出是: Connected to 192.168.0.11. Changing to: /tmp sftp> mkdir test_folder Couldn't create directory: Failure Transfer complete. 0 所以返回代码是0,但显然有一个错误。 如何捕捉远程错误并在脚本中设置适当的返回码?

如何在Bash脚本和ssh-copy-id中使用expect

从一个bash脚本: source ./expect.sh 我包括一个期望代码: #!/bin/bash /usr/bin/expect <<EOL spawn ssh-copy-id -i /home/user/.ssh/id_rsa.pub 111.111.111 expect '*?assword*' send 'thepassword' interact EOL 我得到这个: spawn ssh-copy-id -i /home/user/.ssh/id_rsa.pub 111.111.111.111 /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed — if you are prompted […]

匹配来自文件的第一个文本块,在2个string之间

我试图仅匹配2个string之间的第一个文本块:“menuentry”和“}”,如下所示: input文件: (some irrelevant text) menuentry 'My Customized Linux, with Linux 3.10.0-229.14.1.el7.x86_64' –class centos –class gnu-linux –class gnu –class os –unrestricted $menuentry_id_option 'gnulinux-3.10.0-229.14.1.el7.x86_64-advanced-/dev/mapper/sysvg-lv_root' { load_video set gfxpayload=keep insmod gzio insmod part_msdos insmod xfs set root='hd0,msdos1' if [ x$feature_platform_search_hint = xy ]; then search –no-floppy –fs-uuid –set=root –hint-bios=hd0,msdos1 –hint-efi=hd0,msdos1 –hint-baremetal=ahci0,msdos1 –hint='hd0,msdos1' 2e420275-8578-449d-9217-ce6d9ae35f70 else search –no-floppy –fs-uuid […]

shell脚本调用perl脚本,但在perl脚本完成时退出

我有一个bash脚本和一个while循环遍历目录列表。 在每次传递时,它都会调用perl脚本来完成一些工作。 但是,在第一遍中,无论perl脚本是成功退出还是出现错误,外部shell脚本都会退出。 我已经玩了bash陷阱命令,并寻找答案,但没有解决scheme。 感谢您的任何build议….

bash脚本来检测文件何时添加到文件夹和命令exec

我正在尝试编写脚本来检测文件何时添加到特定的文件夹,并使用最后一个文件添加名称运行命令。 我特别想做的是为每个文件添加一个特定的文件夹中创build一个QR码。 所以我需要做的是:当一个文件被添加到文件夹时检测,抓住基本文件名并传递给qrencode -o filename.png mysite / filename.ext 理想情况下,它有一个开机启动的cronjob。 我正在读关于使用inotify的一些东西,但我不知道如何做到这一点。 非常感谢!