我有一个我作为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)
有什么方法可以调整上面的代码来删除我知道的目录里面的目录吗?
答案 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时就是这种情况,因为默认登录文件夹将始终是主文件夹。
在继续之前,请尝试使用测试文件夹。