写一个程序,要求另一台服务器定时删除指定目录下超过7天的文件或文件夹并输出日志
时间: 2024-02-09 12:07:56 浏览: 80
定时删除文件,或者文件夹
好的,这是一个比较常见的需求,我可以给你提供一份 Python 脚本作为参考。你需要在两台服务器之间建立 SSH 连接,并确保目标服务器上已经安装了 Python 3。
```python
import paramiko
import os
import datetime
# 连接目标服务器
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('目标服务器IP', username='用户名', password='密码')
# 删除指定目录下超过7天的文件或文件夹
dir_path = '/path/to/target/dir'
cmd = f'find {dir_path} -type f -mtime +7 -delete && find {dir_path} -type d -mtime +7 -exec rm -r {{}} \;'
stdin, stdout, stderr = ssh.exec_command(cmd)
# 输出日志
with open('log.txt', 'a') as f:
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
f.write(f'{now}: {cmd}\n')
f.write(stdout.read().decode())
f.write(stderr.read().decode())
# 关闭连接
ssh.close()
```
这个脚本使用 Paramiko 库建立 SSH 连接,并使用 `find` 命令查找目标目录下超过7天的文件和文件夹。如果找到了,就使用 `rm` 命令删除。最后将执行结果和时间戳写入日志文件。你只需要将 `目标服务器IP`、`用户名`、`密码` 和 `/path/to/target/dir` 替换成你实际的值即可。
阅读全文