然后就可以开始设置crontab任务。
0 50 24 12 * python /XXXXX.com/zzzz.py
尝试python执行一个程序试试。执行信息会发送到自己的注册邮箱里。
执行时间过后,到邮箱查看信息,发现邮件:
ython: can’t open file ‘/XXXXX.com/zzzz.py’: [Errno 2] No such file or directory
看来是映射的目录不对,由于ftp过去直接就是这个目录,有可能此目录只是ftp根路径的映射,再改改试试:
在上面.py文件前再加上/hsphere/local/home/a1234567,这个位置是在h-sphere面板中看到的home目录位置,希望这个是绝对路径名。再次修改crontab时间来执行,收到邮件:
tuple' object has no attribute 'scheme' Traceback (most recent call last): File "/hsphere/local/home/a1234567/XXXX.com/zzzz.py", line 311, in ? print u'********************************搞定******************************************' UnicodeEncodeError: 'ascii' codec can't encode characters in position 32-33: ordinal not in range(128)
OK,至少路径是对了。看来每个虚拟空间用户有个用户名a1234567,对方系统会为此用户在hsphere/local/home下建立用户目录(当然也可能是各种映射的)。
下面问题就是解决字符编码的问题了。将程序头部指定utf-8的语句去掉,并去掉文件中所有汉字。再执行。居然不给发邮件了。这是正确执行了吗?但程序并未产生需要的结果。写个简单的testfile.py程序试一下吧,看能不能产生个文件。
file_object = open('thefile.txt', 'w') file_object.write(‘hhhhhhh') file_object.close( )
结果,还是没有反应。将testfile.py所处的目录改成777权限,仍然无用,而却收不到任何报错邮件。
点进h-sphere的文件管理面板来回查看,却突然在ftp的根目录下发现了thefile.txt。也就是/hsphere/local/home/a1234567绝对目录下,这时想起来,以python 绝对路径名.py形式执行程序,会自动放入当前根目录,而非通常在testfile.py目录下用python testfile.py执行时会输出到的当前目录。
这就好办了。原先zzzz.py程序要求输出目录必须先存在,这下修改程序中的输出目录也为绝对路径,或相对于ftp根目录的相对路径就可以了。
原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/580.html