首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >监视文件,然后复制到另一个目录

问监视文件,然后复制到另一个目录
EN

Stack Overflow用户
提问于 2016-03-02 06:36:59
回答 1查看 617关注 0票数 1

我对unix脚本编程比较陌生,所以对于这个新手问题,我很抱歉。

我需要创建一个脚本,将永久运行在后台,并监测一个文件到达FTP登陆目录,然后将其复制到一个不同的目录,最后从原始目录删除该文件。

该脚本在Ubuntu机器上运行。

登录目录为/home/vpntest

需要将该文件复制为/etc/ppp/chap-secrets

代码语言:javascript
复制
#/home/vpntest/FTP_file_copy.sh
if [ -f vvpn_azure.txt ]; then
cp vvpn_azure.txt /etc/ppp/chap-secrets
rm vvpn_azure.txt
fi

我可以作为root运行它,它可以工作,但只能作为一个关闭(我需要它在后台永久运行,并在每次在着陆区收到新文件时触发)。

如果我不是以root用户身份运行,就会遇到权限问题(即使我在/home/vpntest目录中运行它)。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2016-03-02 08:13:31

更新: crontab更正和额外信息

使用root权限在后台执行检查和移动进程的一种方法是使用脚本通过root用户的crontab执行“轮询”方法。

步骤:

代码语言:javascript
复制
#!/bin/bash

new_file=/home/vpntest/vvpn_azure.txt

if [ -f "$new_file" ]; then
    mv $new_file /etc/ppp/chap-secrets
fi

以超级用户身份登录。

  • 添加一个cron任务以运行脚本:

如果这是一台新机器,并且是第一次运行crontab,您可能会得到提示,要求您首先为crontab选择一个编辑器,只需选择并继续进入编辑器即可。

格式为m h dom mon dow command,因此如果每5分钟检查一次就足够频繁,请执行以下操作:

代码语言:javascript
复制
*/5 * * * * /home/vpntest/FTP_file_copy.sh

  1. 保存并关闭以应用。

它现在会在后台每隔5分钟自动运行一次脚本,帮助您在找到文件时移动该文件。

解释

root用户,因为您提到它只适用于Root用户。

因此,我们在root用户的crontab中对其进行设置,以使其具有足够的权限。

星号后面也允许使用

步骤,所以如果你想说“每两个小时”,只要使用“*/2”即可。

因此,我们在第一列(分钟列)中编写*/5,将其设置为“每5分钟”。

FTP_file_copy.sh:

  • 使用绝对路径,可以从anywhere
  • re-arranged运行,因此可以重复使用一个变量new_file
  • 将在[ ]测试中检查的任何值封闭起来的良好做法
  • 使用mv覆盖目标,同时从源目录
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35735004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档