我在这里问了一个类似的问题:(Upload clocking script),但后来改变了它并意识到这是一个不同的问题。
我想创建一个名为uploadtimer.sh的脚本,它将文件上传到各个主机,然后记录上传在日志文件中的时间。感谢那些帮助过我的人,我有一个部分解决方案,但我被困住了:
我用它作为crontab(在上午11点之后的前十分钟进行测试)
1,2,3,4,5,6,7,8,9,10 11 * * * /usr/bin/time -a /usr/local/apache/sites/$MYEMPLOYER/upload_test/output.log /usr/local/apache/sites/$MYEMPLOYER/upload_test/uploadtimer.sh
upload_test /包含这些文件:
upload_test / output.log upload_test / uploadtest.gif upload_test / uploadtimer.sh
output.log是我重命名为.log文件的文本文件。这是空白的。在我把它放在那里之前,我收到的消息说“这个文件不存在”。我认为它会为我创造一个,但我猜不是。在我创建它之后,它一直在crontab邮件中说,在我更改其权限之前我无法写入它,所以我做了。
uploadtest.gif是一个gif
uploadtimer.sh是这样的:
#!/bin/sh
HOST='--myhost--'
USER='--login--'
PASSWD='--password--'
FILE='uploadtest.gif'
ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
put $FILE
quit
END_SCRIPT
exit 0
cron发给我的信息是:
0.00user 0.00system 0:00.02elapsed 0%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+253minor)pagefaults 0swaps
但是没有ftp发生,也没有写在output.log中。
答案 0 :(得分:0)
创建另一个运行第二个命令的脚本。从cron调用第二个脚本。
您需要确保使用绝对路径进行翻转,因为cron在与脚本不同的目录中启动。
答案 1 :(得分:0)
您的问题:
我在哪里放置这部分,告诉它将数据保存到日志中?
编辑crontab文件以添加cron条目。 cron条目包含有关运行什么命令以及何时运行它的信息。例如,以下是您可能使用的cron条目:
0 2 * * * /usr/bin/time -a ~/output.log ~/uploadtimer.sh
此条目表示每天凌晨2点运行命令(分钟0,小时2,每月的每一天,每个月,每周的每一天)。有关crontab语法的详细信息,您可以查看http://www.adminschoice.com/docs/crontab.htm。
要创建一个cron条目,请使用命令crontab -e
,它将加载一个vi文本编辑器。输入上面的行然后保存。这创建了cron作业。如果您不了解vi,请按照以下步骤操作:
crontab -e
开始编辑crontab: installing new crontab
之类的消息。
如果使用vi遇到任何问题,请使用 ESC 几次退出它所处的模式,执行:进入命令模式,然后 q!强制退出(即退出而不保存任何内容),然后从头开始重试。
它是指脚本本身所以它需要与脚本分开吗?
是
答案 2 :(得分:0)
您可能需要查看“ncftp”。它会将你的上传命令压缩成“ncftpput -u $ USER -p $ PASSWD $ HOST / $ FILE”,然后根本就不需要脚本,只需将整个命令放入你的crontab:
0 2 * * * /usr/bin/time -a ~/output.log ncftpput -u $USER -p $PASSWD $HOST / $FILE