Bash脚本与Jenkins一起移动到特定目录并删除该目录中最旧的文件夹

时间:2015-12-23 05:41:48

标签: bash jenkins

我有一个我作为Jenkins用户使用的devbox,正如标题所说,我想运行一个bash脚本,它将移动到一个特定的目录并删除最旧的目录。我知道具体目录的位置。

例如,

ssh服务器[移动/查找/无论如何进入home / deploy并找到部署中最旧的目录并删除它及其中的所有内容]

理想情况下,这是一个单行。在作为Jenkins任务的一部分进行sshing时,不确定如何运行多行。我在上面阅读了一些Stack Overflow帖子,但是不明白。特别是'这里的文件'。

文件结构看起来像home / deploy,在deploy目录中有3个文件夹:最旧,最新和最新。它应该挑出最旧的(因为它的创建日期,并且rm -rf它)

我知道此任务会删除最旧的目录:

rm -R $(ls -lt | grep '^d' | tail -1  | tr " " "\n" | tail -1)

有什么方法可以调整上面的代码来删除我知道的目录里面的目录吗?

1 个答案:

答案 0 :(得分:1)

您可以将脚本传递给ssh。将以下脚本保存为

ssh server -your-arguments-here < delete_oldest.sh

delete_oldest.sh并将其传递给ssh,如下所示

scp delete_oldest.sh your_user_name@remotemachine:~

修改

如果您希望将脚本放在远程计算机上,首先可以 将脚本从本地计算机复制到远程计算机 使用scp的主文件夹如下:

ssh your_user_name@remotemachine './delete_oldest.sh'

然后你可以做类似的事情:

'./delete_oldest.sh'

<a href="page link">page name</a>假设您当前位于远程计算机上的主文件夹中,使用ssh时就是这种情况,因为默认登录文件夹将始终是主文件夹。

在继续之前,请尝试使用测试文件夹。