Crontab不会执行.sh但crontab将执行命令

时间:2017-08-26 22:31:06

标签: bash ubuntu cron

这个问题目前让我疯狂。

我使用public class Category { [Key, Column(Order = 0)] public int CategoryId1 { get; set; } [Key, Column(Order = 1)] public int CategoryId2 { get; set; } public string Name { get; set; } public virtual ICollection<Product> Products { get; set; } } public class Product { [Key] public int ProductId { get; set; } public string Name { get; set; } public int CategoryId1 { get; set; } public int CategoryId2 { get; set; } [ForeignKey("CategoryId1, CategoryId2")] public virtual Category Category { get; set; } }

设置了一个crontab

内容为sudo crontab -e

该文件的内容是:

1 * * * * /home/bolte/bin/touchtest.sh

创建文件。但是下面的脚本不会运行。

#!/bin/bash
touch /home/bolte/bin/test.log

我一直在尝试解决为什么这段代码不会每分钟运行一次,似乎没有与脚本位于同一文件夹中的任何输出,该脚本位于#!/bin/bash # CHANGE THESE auth_email="11111111@live.co.uk" auth_key="11111111111111111" # found in cloudflare account settings zone_name="11111.io" record_name="11111.bolte.io" # MAYBE CHANGE THESE ip=$(curl -s http://ipv4.icanhazip.com) ip_file="/home/bolte/ip.txt" id_file="/home/bolte/cloudflare.ids" log_file="/home/bolte/cloudflare.log" # LOGGER log() { if [ "$1" ]; then echo -e "[$(date)] - $1" >> $log_file fi } # SCRIPT START log "Check Initiated" if [ -f $ip_file ]; then old_ip=$(cat $ip_file) if [ $ip == $old_ip ]; then echo "IP has not changed." exit 0 fi fi if [ -f $id_file ] && [ $(wc -l $id_file | cut -d " " -f 1) == 2 ]; then zone_identifier=$(head -1 $id_file) record_identifier=$(tail -1 $id_file) else zone_identifier=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones?name=$zone_name" -H "X-Auth-E$ record_identifier=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_record$ echo "$zone_identifier" > $id_file echo "$record_identifier" >> $id_file fi update=$(curl -s -X PUT "https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records/$record_ident$ [ Read 55 lines (Warning: No write permission) ] ^G Get Help ^O Write Out ^W Where Is ^K Cut Text ^J Justify ^C Cur Pos ^Y Prev Page ^X Exit ^R Read File ^\ Replace ^U Uncut Text ^T To Linter ^_ Go To Line ^V Next Page

1 个答案:

答案 0 :(得分:0)

好的,所以答案就是,我用sudo编辑crontab,文件位于我的用户主文件夹中。这就是他们没有工作的原因。解决了我自己的问题。

如果您遇到此问题,请使用$ crontab -e而不是sudo crontab -e,并指定文件输出的完整路径,除非您在脚本中放置正确的路径变量。

相关问题