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

Cron เป็นตัวจัดตารางงานตามเวลาในระบบปฏิบัติการคอมพิวเตอร์ Unix Cron ช่วยให้ผู้ใช้สามารถกำหนดเวลางาน (คำสั่งหรือเชลล์สคริปต์) ให้ทำงานเป็นระยะในบางช่วงเวลาหรือวันที่

4
เหตุใดคำสั่ง wget เดียวทำงานใน crontab ของฉัน
ฉันต้องการดึงเนื้อหาจากสคริปต์ PHP บนเซิร์ฟเวอร์ของฉันวันละสองครั้งการเปลี่ยนตัวแปรคิวรีlangเพื่อตั้งค่าภาษาที่เราต้องการและบันทึกเนื้อหานี้เป็นไฟล์สองภาษา นี่คือ crontab ของฉัน: */15 * * * * ~root/apache.sh > /var/log/checkapache.log 10 0 * * * wget -O /path/to/file-sv.sql "http://mydomain.com/path/?lang=sv" 11 0 * * * wget -O /path/to/file-en.sql "http://mydomain.com/path/?lang=en" ปัญหาคือบรรทัดคำสั่ง wget แรกเท่านั้นที่ถูกเรียกใช้งาน (หรือแม่นยำ: ไฟล์เดียวที่กำลังถูกเขียนคือ/path/to/file-sv.sql) ถ้าฉันสลับแถวที่สองและสามให้/path/to/file-en.sqlเขียนแทน บรรทัดแรกจะทำงานตามที่คาดไว้เสมอไม่ว่าจะอยู่ที่ไหน ฉันลองใช้โดยlynx -dump "http://mydomain.com/path/?lang=xx" > /path/to/file-xx.sqlไม่มีประโยชน์ ยังคงมีเพียงบรรทัดคมแรกที่ดำเนินการสำเร็จ แม้แต่การผสม wget และ lynx ก็ไม่ได้เปลี่ยนแปลงสิ่งนี้! …
15 cron  wget 

1
งาน cron คืออะไร / usr / lib / sa / sa1
ฉันเปิดใช้งาน logwatch สำหรับเครื่องของฉันแล้ว ทันใดนั้นฉันเห็นบรรทัดนี้ในบันทึกของฉัน /usr/lib64/sa/sa1 1 1 : 4297 times /usr/lib64/sa/sa2 -A : 29 times run-part /etc/cron.hourly : 716 ฉันลอง crontab -e แต่ฉันไม่เห็นรายการใด ๆ
15 centos  cron 


4
วิธีรันงาน cron เพียงครั้งเดียว
ฉันมีงานที่ทำตลอดไปในขณะที่เริ่ม ดังนั้นฉันต้องการเริ่มเพียงครั้งเดียวหลังจากป้อนลงในไฟล์ "crontab -e" และบันทึก (หรือ) เมื่อใดก็ตามที่รีบูตเกิดขึ้น ทำอย่างไรจึงจะได้สิ่งนี้?
14 cron 

6
การใช้ mysqldump ในงาน cron โดยไม่มีรหัสผ่านรูต
หากฉันเข้าสู่ระบบด้วยรหัสผ่านรูทในกล่องฉันสามารถพิมพ์ได้ mysqldump - ทั้งหมด - ฐานข้อมูลและฉันจะได้รับ "การถ่ายโอนข้อมูล" ที่คาดไว้ ฉันตั้งค่างานใน cron.daily ให้เรียกใช้และถ่ายโอนข้อมูลนี้ไปยังไดรฟ์สำรอง ปัญหาที่ฉันมีคือแม้ว่าผู้ใช้ที่ทำงานเป็น root ฉันได้รับข้อความต่อไปนี้ mysqldump: มีข้อผิดพลาด: 1045: การเข้าถึงถูกปฏิเสธสำหรับผู้ใช้ 'root' @ 'localhost' (ใช้รหัสผ่าน: NO) เมื่อพยายามเชื่อมต่อ ฉันไม่ต้องการรหัสยากรหัสผ่าน root ของฐานข้อมูล mysql ในสคริปต์ (ใครจะ) เมื่อพิจารณาว่าฉันสามารถพิมพ์ "mysqldump" ที่บรรทัดคำสั่งในเชลล์ bash ของฉันจะต้องมีอีกวิธีที่จะได้รับการใช้พารามิเตอร์ -u ฉันมี #! / bin / bash ที่ด้านบนของสคริปต์ ฉันหายไปที่นี่เพื่อขอสิ่งนี้เพื่อไม่ขอรหัสผ่านรูทไปยังฐานข้อมูลได้อย่างไร
14 mysql  scripting  cron 

3
ฉันจะทดสอบสคริปต์ cron ใหม่ได้อย่างไร
ฉันกำลังใช้งาน Linux distros สองสามตัว (Fedora 11, CentOS 5 และ SuSE 10.2) และมักพบปัญหาที่สคริปต์ใหม่ที่ฉันต้องการเรียกใช้เป็นงาน cron ทำงานได้ดีเมื่อเรียกใช้โดยตรงจากบรรทัดคำสั่ง แต่ล้มเหลวเมื่อถูกเรียกจาก cron เนื่องจากความผันแปรเล็กน้อยใน PATH หรือตัวแปรสภาพแวดล้อมอื่น ๆ ที่จำเป็น มีวิธีที่ฉันสามารถทดสอบการใช้งานสคริปต์แต่ละตัวราวกับว่ามันถูกเรียกใช้จาก cron โดยไม่ต้องเรียกใช้ crontab ทั้งหมดหรือใช้ run-parts เพื่อเรียกใช้ไดเรกทอรี cron.daily / .hourly ฯลฯ ทั้งหมด? ฉันเดาว่าฉันสามารถแก้ไข crontab ของฉันชั่วคราวเพื่อเรียกใช้สคริปต์ในอีกไม่กี่นาทีข้างหน้า แต่ฉันควรจะมีวิธีแก้ปัญหาแบบสแตนด์อโลนเพิ่มเติมเพื่อที่ฉันจะได้ไม่เสี่ยงที่จะสับสนกับ crontab
14 linux  cron  testing  test 

2
Anacrontab เฉพาะผู้ใช้
ฉันสามารถใช้crontab -eเป็นผู้ใช้ปกติเพื่อแก้ไขผู้ใช้ crontab ของฉัน Anacron มีคุณสมบัติคล้ายกันสำหรับผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบหรือไม่หรือมีเพียง anacrontab ทั้งระบบ?

2
cron จัดการกับสิ่งที่เหลืออยู่ในงาน“ ทุกครั้ง” ได้อย่างไร
ถ้าฉันทำสิ่งนี้: */9 * * * * /path/to/wotnot งานจะทำงานกี่ชั่วโมงในเวลาสองชั่วโมงเริ่มตั้งแต่เวลา 09.00 น มันคือ A: 09h00 09h09 09h18 09h27 09h36 09h45 09h54 10h03 10h12 10h21 10h30 10h39 10h48 10h57 หรือ B: 09h00 09h09 09h18 09h27 09h36 09h45 09h54 10h00 10h09 10h18 10h27 10h36 10h45 10h54
13 linux  cron 

1
วิธีที่ถูกต้องในการรับ crontab บน CentOS 6 คืออะไร?
ฉันมีเซิร์ฟเวอร์ที่ใช้งาน CentOS 6.2 ได้น้อยที่สุด แต่ไม่ได้ติดตั้ง crontab โดยค่าเริ่มต้นใช่ไหม crontab -e -bash: crontab: command not found ในการค้นหา google ฉันพบการอ้างอิงถึง "vixie-cron" และ "anacronda" แต่ไม่มีคำตอบที่สมบูรณ์เกี่ยวกับวิธีที่ทางการ / สนับสนุนในการทำให้ cron ทำงานบน CentOS 6 บางทีใครบางคนสามารถหลั่งน้ำตาแสงนี้? อัปเดต: rpm -qf `which crontab` /usr/bin/which: no crontab in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin) rpm: no arguments given for query
13 cron  centos6 

6
วิธีการป้องกัน cron จากการประทับตรา?
บอกว่าฉันมีสคริปต์ cron หลายตัวที่ต้องทำงานทุก ๆ 15 นาที ฉันสามารถตั้งให้มันวิ่งได้*/15 * * * *แต่แล้วพวกมันก็วิ่งไปพร้อมกัน ดูเหมือนว่าโง่สำหรับเซิร์ฟเวอร์ที่จะไม่ได้ใช้งานเป็นเวลาหลายนาทีจากนั้นก็พยายามรันสคริปต์หลายสิบรายการพร้อมกัน มีวิธีที่ฉันสามารถเรียกใช้หนึ่งสคริปต์ในนาทีที่ 1, 16, 31, 46 และอื่น ๆ ที่ 2, 17, 32, 47? กล่าวอีกนัยหนึ่งฉันต้องการให้สคริปต์แต่ละบททำงานทุก ๆ 15 นาที แต่ฉันไม่สนใจว่าพวกเขาจะทำงานโดยเฉพาะอย่างยิ่งในช่วงไตรมาสที่สี่
13 cron 


3
ใช้ cronjob พร้อมพารามิเตอร์ต่าง ๆ ในแต่ละวัน
ฉันเป็นโปรแกรมเมอร์และไม่ทราบ crons มาก แต่ฉันต้องการที่จะรู้ว่ามันเป็นไปได้ ช่วยบอกฉันได้อาร์เรย์[option1, option2, option3]และสคริปต์ที่ผมทำงานใน NodeJS script.jsเรียกว่า ฉันต้องการเรียกใช้สคริปต์นี้ทุกวันเวลาตี 1 cronคำสั่งนี้จะเป็น: 0 1 * * * node ~/script.js ตอนนี้ส่วนที่ยุ่งยากฉันต้องการหมุนตัวเลือกในแต่ละวันดังนั้นเช่นวันจันทร์ที่ฉันต้องการเรียกใช้node ~/script.js option1ในวันถัดไปnode ~/script.js option2เป็นต้น นอกจากนี้ฉันต้องการที่จะสามารถเพิ่ม / ลบตัวเลือกเมื่อจำเป็น แต่การหมุนควรจะยังคงเหมือนเดิม เป็นไปได้หรือไม่? ฉันรู้ว่าฉันสามารถทำสิ่งนี้ได้ในโหนดเช่นกัน แต่ฉันอยากทำสิ่งนี้จากนอกสคริปต์และปล่อยให้สคริปต์เหมือนเดิม
12 cron 

3
วิธีแก้ไขปัญหาการเข้าถึง crontab ด้วยข้อผิดพลาดการกำหนดค่า pam? [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันพยายามเข้าถึง crontab ของฉันในฐานะ "coins" ผู้ใช้ที่ไม่ใช่รูทเมื่อฉันพบปัญหาการอนุญาตตามที่แสดงในข้อความแสดงข้อผิดพลาดต่อไปนี้ที่กล่าวถึงการกำหนดค่า pam: [coins@COINS-TEST ~]$ crontab -l Authentication service cannot retrieve authentication info You (coins) are not allowed to access to (crontab) because of pam configuration. การแก้ไขที่พบบ่อยที่สุดสำหรับปัญหาการเข้าถึง crontab นี้คืออะไร
12 linux  cron  pam 

3
การส่งเมลจากบรรทัดรับคำสั่งหากร่างกายไม่ว่างเปล่า
ฉันต้องการเขียนสคริปต์ง่ายๆที่เตือนฉันหากมีการเปลี่ยนแปลงบันทึก สำหรับตอนนี้ฉันกำลังใช้ grep เพื่อค้นหาบรรทัดที่ฉันสนใจตอนนี้มันใช้งานได้: grep line /var/log/file | mail -s Log email@domain.tld ปัญหาคือสิ่งนี้จะส่งจดหมายแม้ว่าจะไม่พบบรรทัดที่ตรงกัน ดูเหมือนว่ายูทิลิตี้เมลจาก mailutils นั้นไม่มีสวิตช์บอกให้ปล่อยเมลที่ไม่มีเนื้อหา มีวิธีที่ง่ายและรวดเร็วในการทำเช่นนั้น?

3
การแก้ไขไฟล์ cron ด้วยตนเองดีไหม
โดยปกติจะแนะนำให้แนะนำงาน cron ใหม่ผ่านบรรทัดคำสั่ง แต่ผมพบว่ามันง่ายขึ้น (ที่มีการควบคุมที่ดีของงาน cron ปัจจุบัน) เพื่อแก้ไขด้วยตนเอง (ในโปรแกรมแก้ไขข้อความ) ไฟล์ cron /var/spool/cron/crontabs/rootผู้ใช้เช่น การแก้ไขไฟล์ใน text editor มีอันตรายไหม ความคิดเห็นในไฟล์เริ่มต้นสับสน บรรทัดแรกบอกว่า # DO NOT EDIT THIS FILE - edit the master and reinstall. แต่บรรทัดที่สี่บอกว่า # Edit this file to introduce tasks to be run by cron.

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