我对unix脚本比较陌生,所以对新手问题表示道歉。
我需要创建一个永久在后台运行的脚本,并监视文件到达FTP登录目录,然后将其复制到另一个目录,最后从原始目录中删除该文件。
脚本在Ubuntu框上运行。
目标目录是/ home / vpntest
该文件需要复制为/ etc / ppp / chap-secrets
到目前为止,我已经有了这个
#/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中运行它。)
非常感谢任何帮助。
答案 0 :(得分:0)
已更新: crontab更正和额外信息
使用root权限在后台进行检查和移动过程的一种方法是使用root用户的crontab和脚本完成“轮询”方法。
步骤:
#!/bin/bash
new_file=/home/vpntest/vvpn_azure.txt
if [ -f "$new_file" ]; then
mv $new_file /etc/ppp/chap-secrets
fi
退出。以root用户身份登录。
添加一个cron任务来运行脚本:
crontab -e
如果这是一台新机器,并且您第一次运行crontab,您可能会首先选择crontab的编辑器,只需选择并继续进入编辑器。
格式为m h dom mon dow command
,因此如果每隔5分钟检查一次,请执行以下操作:
*/5 * * * * /home/vpntest/FTP_file_copy.sh
现在它将在后台每隔5
分钟自动运行脚本,帮助您移动文件(如果找到)。
root用户,因为你提到它只能以root身份为你工作。
因此我们在root用户的crontab中设置它以获得足够的权限。
man 5 crontab
告知我们:
星号后也允许步骤,所以如果你想说 '每两个小时',只需使用'* / 2'。
因此我们在第一列写了*/5
,这是分钟列,
设置为“每5分钟”。
FTP_file_copy.sh:
new_file
[
]
测试mv
在从源目录