gpt4 book ai didi

Linux脚本变量到SCP并删除文件

转载 作者:太空宇宙 更新时间:2023-11-04 10:11:28 25 4
gpt4 key购买 nike

我希望设置一个脚本来执行以下操作:

1st: SCP 某月第一天目录到另一台服务器

第二:转移成功后删除目录

我需要移动的目录总是有不同的名称,编号最小的总是需要移动的目录:

2018/文件/02/

2018/文件/03/

所以我想写的是这样的:

scp /2018/files/% user@host:/backups/2018/files/
{where % = lowest num} &&
rm -rf /2018/files/%
{where % = lowest num} &&
exit

谢谢你的建议

最佳答案

如果您对使用 Ruby 持开放态度,则可以通过以下方式完成:

def file_number(filespec)
filespect.split('/').last.to_i
end

directories = Dir['/2018/files'].select { |f| File.directory?(f) }
sorted_dirs = directories.sort_by do |dir1, dir2|
file_number(dir1) <=> file_number(dir1)
end

dir_to_copy = sorted_dirs.first
destination_dir = File.join('/', 'backups', dir_to_copy)

`scp #{dir_to_copy} user@host:#{destination_dir}`
`rm -rf #{dir_to_copy}`

我没有对此进行测试,但如果您有任何问题,请告诉我它们是什么,我可以与您一起解决。

虽然使用 shell 脚本消除了对 Ruby 解释器的需要,但对我来说代码并不那么简单。

在非常大的目录列表(可能有 10,000 个?)中,排序可能慢得无法忍受,需要另一种方法来优化速度。

我会提醒您不要在备份后执行无条件的 rm -rf - 这对我来说似乎真的很冒险。

关于Linux脚本变量到SCP并删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48839025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com