Questions tagged «cron»

cron是一个基于时钟时间的任务调度程序,可在基于Linux的计算机上运行。

1
由crontab执行时不满足Bash条件
我有一个小脚本来启动fluidynth服务器,然后将它连接到我的rasberry上的midi设备(OS是raspbian stretch lite)。 echo "Starting" fluidsynth -is -a alsa --gain 3 /usr/share/sounds/sf2/Nice-Keys-B-Plus-JN1.4.sf2 & echo "Fluidsynth started" while true; do aconnect -o; if [[ $(aconnect -o ) = *FLUID* ]]; then break; fi; sleep 2; done aconnect 20:0 128:0 echo "Connected" 条件外的aconnect -o用于调试。 当我正常执行(./startup_fluid_synth.sh)时它工作正常:https://pastebin.com/kU0wDu3w 我的crontab -e说: @reboot /home/pi/startup_fluid_synth.sh >> /home/pi/fluid.log 现在当我重新启动pi时,脚本启动了,但是日志清楚地表明应该满足条件,但不是:https://pastebin.com/FnxMKBkF …

2
为什么这个bash脚本会在Ubuntu上给出错误而不是OSX
#!/usr/bin/env sh export $NODE_CONFIG_DIR=/Users/full/path/to/script/config cd /Users/full/path/to/script /usr/local/bin/node main 该脚本在OSX上本地运行(如果我调整本地环境的路径),但在Ubuntu上,我得到: ./mtf_runner.sh: 2: export: : bad variable name 我想使用cron运行脚本,需要设置NODE_CONFIG_DIR环境变量 此外,虽然该命令在cronOSX(10.8.5)上运行,但我确实将以下内容发送到我的本地邮件: line 2: export: `=/Users/myname/Node/Development/tennistracker/config': not a valid identifier 我已经读到这可能是由周围的空间引起的,=但绝对没有空间

1
在cron工作中使用flock是否有缺点?
我使用了几个cron作业,它们经常运行我flock用来防止重复的作业运行。我只是认为flock无论频率如何,在每项工作中使用似乎都是有道理的,但这样做有什么不利之处吗? 我是Mint,Raspbian和Ubuntu服务器的100%Linux。
1 linux  cron 

1
使用Screen和Crontab备份MySQL
我正在尝试使用mysqldump,screen和crontab每天备份我的数据库表。如果我只运行mysqldump,它会正确转储,但如果我这样做screen,则输出文件为空。 编辑Crontab crontab -e 添加命令 0 0 * * * screen -dmS MYDATABASE_MYTABLE_backup mysqldump -u MYUSERNAME -pMYPASSWORD -h MYHOSTNAME MYDATABASE MYTABLE --compress | gzip > /root/backup/database/MYDATABASE_MYTABLE_`date +\%Y-\%m-\%d`.sql.gz

1
启动时反向SSH连接?
我有一个运行Kali Linux的Raspberry Pi。我想要它做的是,只要它启动,就可以通过反向SSH连接到我的机器上,这样我就可以在任何地方进行控制。 我创建了一个名为connect.sh的脚本,其中包含以下行: sshpass -p '******' ssh -R 12345:localhost:***** user@**.***.**.** -p ***** -N & 我加了 @reboot /root/connect.sh 到crontab(我用crontab -e对其进行了编辑)。问题是,当我手动执行脚本时,该命令有效,但是当我重新启动Raspberry Pi并尝试与其他计算机连接时,该命令不起作用。如果我手动执行脚本,它也会执行。 因此,我假设启动时执行中存在问题。而且我知道脚本确实会执行,因为我是echo test > test在connect.sh的开头添加的,并且当我重新启动Pi时,文件就在那里了。因此SSH命令存在问题。

0
bash脚本是否可以替代cron作业或C守护程序?
我们的生产服务器遇到了cron问题。Cron设置为每5分钟执行一次,这在大多数情况下都有效,但是我遇到了一个问题,即作业可能需要6分钟才能处理。第二个6分钟的工作要等到10分钟后才能执行,这迟早会成为问题。 我已经研究过用C语言编写一个分叉守护程序来侦听传入的请求-但这也是有问题的,因为这将意味着编写另一个API端点并占用开发时间。 我发现了看似简单的解决方案,并且正在寻求批评/批评: 为简单起见,php CLI将根据是否有作业等待输出1或0: <?php echo "1" ?> bash脚本能够检查队列中是否有任何作业: #!/bin/bash var=$(php -f ../readPhpOutput/testOutput.php) if [ "$var" -eq "0" ] then echo "input zero" else echo "input not zero" fi sleep 10 另一个bash脚本与nohup一起运行,以确保上述脚本正在运行: #!/bin/bash while true do value=$(ps -A | grep [r]eadPhpOutput) echo "grep output is: $value" if [ -z …
1 linux  bash  script  cron 

1
作业显示在crontab -l中,但未显示在/ etc / crontab中
我做某件事时会出现 $ crontab -l 并且我可以验证它是否还在运行。但是,该工作未在中列出/etc/crontab。 说工作是/ somedir / somefile我似乎找不到为cron指定的位置 $ find /var/ -path *cron* -exec grep somefile {} \; 2>e $ find /etc/ -path *cron* -exec grep somefile {} \; 2>e 什么都不要出现 如果我crontab -e删除了该行,则该作业仍将运行,并且/ etc / crontab保持不变(因为它最初没有该行!) 我是普通用户(非管理员),/ var和/ etc中的某些路径对我来说是无法访问的(这就是为什么我要2> e来重定向权限被拒绝的错误)。但是,应该可以访问此文件的con命令,因为我可以在中对其进行编辑crontab -e。
1 linux  cron  crontab 

1
如何使cron运行Java GUI应用程序?
我有一个脚本,该脚本使用“ java -jar app.jar”运行Java GUI应用程序。我已将脚本添加到crontab中,以便每分钟运行一次,请检查进程列表是否已启动应用程序。如果不是,则应启动应用程序。 但是,它仅启动该过程,而不启动GUI。我在脚本顶部添加了“ export DISPLAY =:0”,但这没有帮助。 如何让cron像我自己启动程序那样运行程序? 谢谢
1 java  cron  crontab  cronjob 

1
在启动时运行shell脚本(Kali Linux)
这似乎是一个非常基本的事情,我甚至已经按照一些教程来获得一个简单的脚本在启动时运行,但无济于事。 以下是我的脚本在根目录中的样子: #! /bin/bash xmodmap ~/.xmodmaprc echo 0 | sudo tee /sys/module/hid_apple/parameters/iso_layout 该脚本通过切换控制和命令键(因为我在macbook上)基本上改变了我的键盘映射。它一直 chmod 'ed为可执行文件,以便在我执行时成功执行 ./keymap_fix.sh 或者我 /root/keymap_fix.sh 我已经按照这些简单的教程 https://www.cyberciti.biz/tips/linux-how-to-run-a-command-when-boots-up.html 和 https://www.cyberciti.biz/faq/linux-execute-cron-job-after-system-reboot/ 所以,我已经将shell脚本复制到了 /etc/init.d 并做到了这一点 update-rc.d keymap_fix.sh defaults 100 我甚至尝试通过添加来以类似的方式设置crontab @reboot /root/keymap_fix.sh ,但没有任何作品!每当我重新启动时,我的键盘映射都保持不变。 :/ 如果有人能帮到我,谢天谢地!

1
尝试在路径中执行带空格的cron脚本时出错
我有一个脚本,里面有几个rsync命令。脚本文件放在NTFS分区中,其所有者和组权限设置为root。 使用以下命令从终端手动运行文件没有问题: "/mnt/Files/Software/Software Customizations/Linux/Scripts/rsync_backup.sh" crontab条目是(我的crontab,而不是root): 0 15 * * 6 export DISPLAY=:0 && gnome-terminal -e "/mnt/Files/Software/Software Customizations/Linux/Scripts/rsync_backup.sh" 但是执行文件时出现以下错误 There was an error creating a child process for this terminal. Failed to execute child process "/mnt/Files/Software/Software" (Permission denied) 截图: 你能告诉我问题是什么吗? 看起来不像权限问题因为我可以在不使用sudo的情况下执行文件,并且路径只是部分截图,让我相信它是空格的问题。
linux  bash  cron 

1
如何让crontab访问域用户?
我正在使用RedHat 7.3服务器,用户需要访问crontab。但是,该用户是域用户(例如test @ [domain])。因此用户不会出现在/ etc / passwd文件中。 我已经尝试在cron.allow文件中添加他的名字和全名(后面有域名)。 这似乎没有用,stil许可否认。甚至可以为域用户(没有root访问权限)访问crontab吗?如果是,怎么样?

1
Shell脚本没有与cronjob一起运行
我正在使用PUTTY来访问服务器。我可以使用以下命令转储数据库: /usr/bin/mysqldump --all-databases | /bin/gzip > Backup_DB/alldatabases_test.sql.gz 当我从root运行脚本时,该文件被转储到指定的文件夹中: root@server1 [~]# sh mybackup.sh root@server1 [~/Backup_DB]# ls -a ./ ../ alldatabases_test.sql.gz 但是,当我把它设置为cronjob时,它并没有倾倒任何东西: */2 * * * * sh mybackup.sh 其他cronjobs工作正常。 编辑 因此运行脚本无效,但感谢您的帮助。 我的最终目标是从我所有其他cronjobs所在的地方运行脚本,并在我有ftp访问权限的文件夹中创建备份。 这就是为什么我添加了一个cronjob: */2 * * * * sh /home/mysite/www/cronjobs/mybackup.sh 内容: /usr/bin/mysqldump --all-databases | /bin/gzip > /home/mysite/www/cronjobs/alldatabases.sql.gz 这也不起作用。我在/ cronjobs文件夹中找不到alldatabases.sql.gz。路径设置错了吗?

1
Crontab脚本不保存结果文件
我想每天备份我的数据库,我写了一个脚本 my.cnf中 [client] host=locahost user=root password='pw' script.sh #!/bin/bash /bin/mysqldump --defaults-file=/home/wasifkhalil/my.cnf --set-gtid-purged=OFF testing_dump > /home/wasifkhalil/db_backups/$(date +"%Y-%m-%d_%H%M")_crm_backup.sql exit 现在当我运行这个脚本 [root@instance-main db_backups]# /home/wasifkhalil/script.sh 它工作得很完美,我在文件夹中看到sql文件但是当我在crontab中运行它时它不起作用,我做错了什么? (用于测试我将其设置为每小时的第16分钟) 16 * * * * root /home/wasifkhalil/script.sh 这是Cent OS的版本 centos-release-7-3.1611.el7.centos.x86_64


2
数据库备份bash通过ssh工作但不在cronjob中工作
我已经整理了一个脚本来备份共享主机上的数据库。脚本如下: mysqldump --databases [db1] [db2] | openssl aes-256-cbc -a -salt -pass file:/home/[user]/etc/.keys/.backup_key | gzip > /home/[user]/backup/$(date +%Y:%m:%d:%H:%M:%S).gz 数据库凭据存储在/ home / [user]中的.cnf中,以及脚本中显示的密钥文件中的加密密钥。当我通过SSH运行此脚本时,一切正常,并创建备份文件。但是,cronjob集不会创建任何文件以在每天的顶部执行。 有任何想法吗? 非常感谢。
linux  bash  ssh  backup  cron 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.