我正在使用 Putty 并尝试编写 Linux 命令,使其每天晚上 11 点运行一次,并将文件 (flie1.seq) 从一个目录 (xyz) 复制到另一个目录 (abc),xyz 文件夹中的文件必须是当前日期(例如,文件必须在今天(当前日期)修改或创建,然后必须复制,否则忽略)。想知道是否有人可以帮忙...
答案1
1-切换到您想要以该身份执行此序列的用户。
2-创建一个 cronjob,它将在每天晚上 11 点执行你的命令:
crontab -e
这将打开一个文本编辑器,您可以在其中编写您的工作:
3-然后复制以下代码片段并保存:
00 23 * * * /bin/cp /xyz/file1.seq /abc/
4-检查 cronjob 是否已设置:
crontab -l
PS:请注意cp将自动刷新时间戳至当前操作时间:atime、mtime、ctime
答案2
使用 crontab 和 rsync 的方法
#m h dom mon dow command
00 23 * * * /usr/bin/find /xyz/flie1.seq -daystart -mtime -0 -exec /usr/bin/rsync -az {} /abc/ \;
在路径 /xyz/ 中查找文件“flie1.seq”,其中
- -daystart = 从“今天”开始
- -mtime 0 = 修改时间是今天
- -exec rsync = 执行 rsync
使用 rsync 选项 -az
- a = 保留属性(硬链接除外)
- z = 在传输过程中压缩文件数据
同步到文件夹 /abc/
同步非常方便,也是我首选的方法,因为如果您的目的地是远程服务器,它很容易使用。