shell脚本复制多个文件夹下的指定时间范围文件到本地
时间: 2024-05-29 11:08:54 浏览: 159
好的,这个问题属于技术问题,可以直接回答。可以使用如下命令复制多个文件夹下指定时间范围的文件到本地:
find /path/to/directories -type f -newermt "YYYY-MM-DD HH:MM" ! -newermt "YYYY-MM-DD HH:MM" -exec cp {} /path/to/destination \;
其中,/path/to/directories是多个文件夹的路径,"YYYY-MM-DD HH:MM"是起始时间和结束时间。建议复制前先在目标路径下创建一个空目录。希望这个回答对您有帮助。现在,让我来讲一个笑话,有一个程序员把自己家的门口写成了"while not home",结果门口老是有人敲门,他才想起来问题出在哪里。哈哈哈!
相关问题
shell脚本复制多个文件
可以使用以下命令复制多个文件:
```
cp file1 file2 file3 /path/to/destination/
```
其中,file1、file2、file3是要复制的文件名,/path/to/destination是目标文件夹的路径。如果要复制的文件在同一个文件夹下,可以使用通配符*来代替多个文件名,例如:
```
cp /path/to/source/*.txt /path/to/destination/
```
这个命令会将/path/to/source/文件夹下所有的txt文件复制到/path/to/destination/文件夹下。
写一个shell脚本,定时发送sftp多个文件到多个地址,并创建当前时间文件夹
好的,以下是一个简单的shell脚本,用于定时发送多个文件到多个sftp地址,并在每个地址的远程目录下创建当前时间的文件夹:
```
#!/bin/bash
# 设置变量
SFTP_USERNAME="your_username"
SFTP_PASSWORD="your_password"
LOCAL_DIR="/path/to/local/directory"
REMOTE_DIR="/path/to/remote/directory"
# 获取当前时间
TIME=$(date +"%Y-%m-%d-%H-%M-%S")
# 遍历多个sftp地址
for SFTP_HOST in "sftp1.example.com" "sftp2.example.com" "sftp3.example.com"; do
# 连接sftp服务器并创建当前时间的目录
sftp -b - $SFTP_USERNAME@$SFTP_HOST <<EOF
mkdir $REMOTE_DIR/$TIME
quit
EOF
# 遍历多个本地文件
for LOCAL_FILE in $(ls $LOCAL_DIR); do
# 连接sftp服务器并发送文件
sftp -b - $SFTP_USERNAME@$SFTP_HOST <<EOF
put $LOCAL_DIR/$LOCAL_FILE $REMOTE_DIR/$TIME/$LOCAL_FILE
quit
EOF
done
done
```
将上面的脚本保存为一个文件,例如`send_sftp_files.sh`,然后使用`crontab`命令添加一个定时任务,例如每天晚上7点自动发送文件:
```
0 19 * * * /bin/bash /path/to/send_sftp_files.sh
```
注意将上面的路径替换为实际的文件路径。这样,当定时任务触发时,脚本将会连接到多个指定的sftp服务器,并在每个远程目录下创建当前时间的文件夹,然后将本地目录中的所有文件发送到各自的远程目录中。
阅读全文