标签: bash

在 linux 终端中键入命令 bash 时会做什么?

当我输入bashlinux cli 时,它给了我bash-3.2$它有什么作用?

bash command-line-interface terminal

2
推荐指数
1
解决办法
8331
查看次数

在 cronjob 中从 bash 脚本运行 JAR

由于某种原因,我的 cronjob 无法正常工作:

4 20 * * * /home/ubuntu/db_backup/myScript.sh 1 > /home/ubuntu/db_backup/cron_log.txt
Run Code Online (Sandbox Code Playgroud)

我的 bash 脚本如下所示:

#! /bin/bash
mysqldump -h anotherhost -P 3306 -u usen -pmypass --all-databases > $1.sql
java -jar myJar.jar param1 $1.sql
Run Code Online (Sandbox Code Playgroud)

所以 jar 文件接受 2 个参数,第一个我希望始终相同,第二个来自第一个 bash 参数。在 /var/spool/mail/ubuntu 我看到这个错误:

无法访问 jarfile myJar.jar

我在用户下设置了 crontab:ubuntu

jar 文件的所有者和组是 ubuntu,它的八进制权限为 700。

我究竟做错了什么?

bash java cron

2
推荐指数
1
解决办法
7111
查看次数

压缩远程服务器文件夹和文件并将它们复制到我的本地驱动器

我有一个可以使用 ssh 和 plesk 访问的 linux 专用服务器。我的服务器上没有足够的空间来压缩我的所有文件夹和文件,然后将它们 scp 到我的本地计算机上。

是否有 bash 命令可以直接在我的本地驱动器上压缩远程文件?

linux bash

2
推荐指数
1
解决办法
7730
查看次数

如何防止“for”分割目录名?

我正在尝试使用“for”循环列出所有隐藏目录:

for i in ``ls -a | grep '^\.'` `;
do 
    echo $i
done
Run Code Online (Sandbox Code Playgroud)

问题是循环将一些目录名称一分为二。

例如:ls -a | grep '^\.'给我

.
..
.Deleted Items
.Drafts 
.Junk
.Junk E-mail
.Sent
.Sent Items
.Trash
Run Code Online (Sandbox Code Playgroud)

但我的循环给了我:

.
..
.Deleted
Items
.Drafts
.Junk
.Junk
E-mail
.Sent
.Sent
Items
.Trash
Run Code Online (Sandbox Code Playgroud)

如何改进我的脚本,使其不划分目录名称?

scripting linux bash

2
推荐指数
1
解决办法
125
查看次数

如何在 BASH 脚本中为有时变得不活动的进程设置超时?

我有一个 bash 脚本,它通过 CRON 运行很多命令/工具,比如 convert 或 pdftk。

例如 pdftk 变得“陈旧”或“挂起”并且调用脚本停止继续进行的情况经常发生。

bash 脚本中是否有一种简单的方法(通过陷阱?)来设置执行时间限制或检测特定调用的不活动状态(根据任何定义)?

scripting bash

2
推荐指数
1
解决办法
8681
查看次数

如何在特定最长时间后停止脚本?

我正在对 S3 进行每日备份。我只想在晚上 8 点到早上 8 点之间消耗上传带宽。任何个人运行都可能需要超过 12 小时,因为我们的上传很糟糕。我不担心随意杀死 s3cmd 因为它会在下次运行时正确恢复。

我的 crontab 看起来像这样:

# 0 20 * * * s3cmd sync FOO s3://MyBucket
Run Code Online (Sandbox Code Playgroud)

如果是上午 8 点,我如何测试并使其停止。理想情况下,我希望我可以做这样的事情:

# 0 20 * * * time --limit 12H "s3cmd sync FOO s3://MyBucket"
Run Code Online (Sandbox Code Playgroud)

我正在使用 Ubuntu 服务器。

谢谢!

编辑:

基于量子的回答。对于多个上传命令,我认为我应该怎么做?

# 0 20 * * * s3cmd sync FOO s3://MyBucket; s3cmd sync BAR s3://MyBucket; s3cmd sync FOOBAR s3://MyBucket;
# 0 8 * * * pkill s3cmd; sleep 1; pkill s3cmd; sleep 1; pkill s3cmd; …
Run Code Online (Sandbox Code Playgroud)

linux bash cron

2
推荐指数
1
解决办法
2653
查看次数

Bash 脚本回声 -n

我正在编写一个 bash 脚本,我想回显一个字符串,但没有自动添加到末尾的换行符。阅读手册页,它说标志是-n.

问题是,当我这样做时:

echo -n "My string is here"
Run Code Online (Sandbox Code Playgroud)

bash 脚本中的输出是:

-n My string is here
Run Code Online (Sandbox Code Playgroud)

知道为什么-n输出标志而不是处理标志。

bash echo

2
推荐指数
1
解决办法
6031
查看次数

带 ssh 的 bash 功能

我只是第一次进入 bash。

我将如何在此范围内的服务器上运行函数?drush 状态也仅适用于通过 ssh 连接的服务器。

#!/bin/bash

function test {
    drush status
}

function connect {
    ssh user@serveraddress 'test'

}

connect
Run Code Online (Sandbox Code Playgroud)

我知道您需要将远程代码放在 ssh user@server 'code here' 中,但是复杂的事情会与所有 '" 等混淆。例如,这应该回显服务器的所有 db 名称。

function connect {


    ssh user@serveraddress 
   '

    dbuser=user
    dbpass=pass
    DBS=`mysql -u$dbuser -p$dbpass -Bse 'show databases'| egrep -v 'information_sch$
    for db in $DBS; do
        echo "DB name -  $db"
    done

    '   
}


connect
Run Code Online (Sandbox Code Playgroud)

任何帮助链接表示赞赏,干杯

ssh bash remote

2
推荐指数
1
解决办法
6226
查看次数

将标准输出附加到文件,但继续输出到控制台

在 linux/bash 上,我想将命令的 stdout 附加到文件,但不重定向它(即我希望它同时转到控制台和文件)。有什么线索吗?

linux bash stdout

2
推荐指数
1
解决办法
481
查看次数

Linux - 将备份分成两步

我使用创建了一个 tarball tar zcf arhive.tar.gz dir/,这可以正常工作。现在我想把它分成两个简单的档案,一个只用于图像,另一个 - 用于其他所有内容。

似乎没有一种简单而干净的方法可以做到这一点。因为tar我只能排除文件,排除除 gif、jpg 和 png 之外的所有扩展名是不合理的。

要包含我必须使用find-exec| xargs. 这有点工作,但如果文件名有空格或特殊字符(撇号,引号),则会中断。所以现在我必须将所有文件名输入管道,awk然后手动转义它们?

我错过了什么?为什么这么复杂?

我只是想 tar zcf archive-images.tar.gz dir/ --match-only=*.png

linux backup bash archive tar

2
推荐指数
1
解决办法
104
查看次数

标签 统计

bash ×10

linux ×5

cron ×2

scripting ×2

archive ×1

backup ×1

command-line-interface ×1

echo ×1

java ×1

remote ×1

ssh ×1

stdout ×1

tar ×1

terminal ×1