发现每天同一个时间都会被唤醒
Download Station
于是通过log查看
root@DiskStation:~# cd /var/log root@DiskStation:/var/log# ls apparmor.log disk-latency esynoscheduler.log pmesg scemd.log synocmsclient.log synoreport.log audio_debug_msg disk.log fsck postgresql.log scsi_plugin.log synocrond-execute.log synoscheduler.log AudioStation-pgbouncer.log disk_overview.xml healthtest pstore selfcheck synocrond.log synoservice.log auth.log diskprediction iscsi.log rm.log sfdisk.log synofeasibilitycheck.log synoupdate.log bash_err.log dmesg kern.log rm.log.1.xz smart_quick_log SynoFinder syslog.log bash_history.log dmesg.1.xz messages router.log smart_result synoindex.log sysnotify.log checker.log dmesg.2.xz nginx rsync.error space_operation_error.log synolog upstart datascrubbing.log downloadstation.log openvswitch rsync_signal.error sssd synopkg.log DeviceBusyList dpkg_upgrade.log packages samba surveillance synopoweroff.log root@DiskStation:/var/log# vim synocrond-execute.log
发现固定唤醒的这几次都有Download Station的身影,于是将DownloadStation停止掉,发现21:55的唤醒还在,其他两次的固定唤醒已经没了
syno_ip_conflict_detect和syno_hungtask_config
发现剩下的大多数的唤醒,都是
builtin-dyn-syno-ip-conflict-detection-syno-ip-conflict-detection with command: /usr/syno/sbin/syno_ip_conflict_detect --detect as user root
停止掉Download Station后,发现一天还是会有大约八次的唤醒,下面是4月1日白天都没有登录的情况下的唤醒记录。主要都是syno_ip_conflict_detect以及同时启动的syno_hungtask_config导致的唤醒。
04-01 00:00:11 running job: builtin-dyn-syno-ip-conflict-detection-syno-ip-conflict-detection with command: /usr/syno/sbin/syno_ip_conflict_detect --detect as user root 04-01 00:00:21 running job: builtin-synodiskhealthprediction-syno_disk_data_collector with command: /usr/syno/bin/synodiskhealthprediction.sh as user root 04-01 00:02:11 running job: builtin-libhwcontrol-syno_hungtask_config with command: /usr/syno/bin/syno_hungtask_config --reset as user root 04-01 06:57:11 running job: builtin-dyn-syno-ip-conflict-detection-syno-ip-conflict-detection with command: /usr/syno/sbin/syno_ip_conflict_detect --detect as user root 04-01 06:57:21 running job: builtin-libhwcontrol-syno_hungtask_config with command: /usr/syno/bin/syno_hungtask_config --reset as user root 04-01 10:50:11 running job: builtin-synobtrfssnap-default with command: /usr/syno/sbin/synobtrfssnap --clean-deleted-subvol as user root 04-01 10:50:21 running job: builtin-synosharing-default with command: /usr/syno/bin/synosharingcron as user root 04-01 17:42:11 running job: builtin-dyn-syno-ip-conflict-detection-syno-ip-conflict-detection with command: /usr/syno/sbin/syno_ip_conflict_detect --detect as user root 04-01 17:42:21 running job: builtin-libhwcontrol-syno_hungtask_config with command: /usr/syno/bin/syno_hungtask_config --reset as user root 04-01 17:42:31 running job: builtin-synosharesnaptree_reconstruct-default with command: /usr/syno/sbin/synosharesnaptree_reconstruct.sh as user root 04-01 21:56:11 running job: builtin-dyn-syno-ip-conflict-detection-syno-ip-conflict-detection with command: /usr/syno/sbin/syno_ip_conflict_detect --detect as user root 04-01 21:56:21 running job: builtin-libhwcontrol-syno_hungtask_config with command: /usr/syno/bin/syno_hungtask_config --reset as user root
打开crontab,想必是crontab中的synoschedtask又从别的地方读取定时任务来执行了。
root@DiskStation:/etc# vim crontab
"crontab" 6L, 308C 1,1 All MAILTO="" PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin #minute hour mday month wday who command 0 0 1 * * root /usr/syno/bin/syno_disk_health_record 35 0 * * 6 root /usr/syno/bin/synoschedtask --run id=1 0 0 9 * * root /usr/syno/bin/synoschedtask --run id=2
crontab中的synoschedtask又是从如下位置读取配置来执行任务
root@DiskStation:/usr/syno/etc# vim scheduled_tasks
[1] id=1 last work hour=0 can edit owner=0 can delete from ui=1 edit dialog=SYNO.SDS.TaskScheduler.EditDialog type=weekly action=#schedule:dsm_autoupdate_notify# can edit from ui=1 week=0000001 app name=#schedule:dsm_autoupdate_appname# name=DSM Auto Update can run app same time=0 owner=0 repeat min store config= repeat hour store config= simple edit form=0 repeat hour=0 listable=0 app args= state=enabled can run task same time=0 start day=0 cmd=L3Vzci9zeW5vL3NiaW4vc3lub3VwZ3JhZGUgLS1hdXRvdXBkYXRl run hour=0 edit form= app=SYNO.SDS.TaskScheduler.DSMAutoUpdate run min=35 start month=0 can edit name=0 start year=0 can run from ui=0 repeat min=0 [2] id=2 last work hour=0 can edit owner=0 can delete from ui=1 edit dialog=SYNO.SDS.TaskScheduler.EditDialog type=monthly action="#disk_info:disk_smart_test_quick_all#" can edit from ui=1 week=0000000 app name="#smart:smart_toolbar_smart_test#" name=Auto S.M.A.R.T. Test can run app same time=1 owner=0 repeat min store config=[] repeat hour store config=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23] simple edit form=0 repeat hour=0 listable=1 app args={"enabled":"true","id":"-1","selected_disks":"","task_name":"Auto S.M.A.R.T. Test","test_range":"all","test_style":"quick","test_type":"smart"} state=enabled can run task same time=0 start day=9 cmd=L3Vzci9zeW5vL2Jpbi9zeW5vX3NtYXJ0X3Rlc3QgLS10eXBlPXF1aWNrIC0tZGlzaz1hbGw7 run hour=0 edit form= app="SYNO.SDS.TaskScheduler.SMART" run min=0 start month=2 can edit name=1 start year=2021 can run from ui=1 repeat min=0 [3] id=3 last work hour=0 can edit owner=0 can delete from ui=1 edit dialog=SYNO.SDS.TaskScheduler.EditDialog type=weekly action=Scan selected checks can edit from ui=1 week=0000001 app name=#helptoc:securityscan# name=Run security advisor can run app same time=1 owner=0 repeat min store config= repeat hour store config= simple edit form=0 repeat hour=0 listable=0 app args= state=disabled can run task same time=0 start day=0 cmd=L3Vzci9zeW5vL2Jpbi9zeW5vd2ViYXBpIC1leGVjIGFwaT1TWU5PLkNvcmUuU2VjdXJpdHlTY2FuLk9wZXJhdGlvbiBtZXRob2Q9dXBkYXRlIHZlcnNpb249MSAmJiAvdXNyL3N5bm8vYmluL3N5bm93ZWJhcGkgLWV4ZWMgYXBpPVNZTk8uQ29yZS5TZWN1cml0eVNjYW4uT3BlcmF0aW9uIG1ldGhvZD1zdGFydCB2ZXJzaW9uPTEgaXRlbXM9QUxMIG5vdGlmeT10cnVl run hour=3 edit form= app=SYNO.SDS.SecurityScan.MainWindow run min=46 start month=0 can edit name=0 start year=0 can run from ui=1 repeat min=0
不过上面的任务都是几天执行一次的,问题不大。除了上面的任务,还有两处也有定时任务,synocrond-execute.log 中记录的唤醒大多数都是下面的任务导致的:
root@DiskStation:/usr/syno/share/synocron.d# ls libhwcontrol.conf synodatacollect.conf synodisklatencywriteback.conf synosharing.conf synobtrfssnap.conf synodiskhealthprediction.conf synosharesnaptree_reconstruct.conf
root@DiskStation:/usr/syno/etc/synocron.d# ls autopkgupgrade.conf syno-ip-conflict-detection.conf
看到了熟悉的 syno_ip_conflict_detect ,vim打开 syno-ip-conflict-detection.conf ,发现每天的0,6,12,18这几个点,要执行四次
[ { "cmd" : "/usr/syno/sbin/syno_ip_conflict_detect --detect", "crontab" : "0 0,6,12,18 * * *", "name" : "syno-ip-conflict-detection", "period" : "crontab", "user" : "root" } ]
改成如下,每个月的9号零点执行一次:
[ { "cmd" : "/usr/syno/sbin/syno_ip_conflict_detect --detect", "crontab" : "0 0 9 * *", "name" : "syno-ip-conflict-detection", "period" : "crontab", "user" : "root" } ]
vim打开 /usr/syno/share/synocron.d/libhwcontrol.conf ,看到了熟悉的 /usr/syno/bin/syno_hungtask_config ,而且唤醒时间跟 syno_ip_conflict_detect 完美吻合
[{ "cmd": "/usr/syno/bin/syno_disk_db_update", "user": "root", "period": "monthly", "name": "syno_disk_db_update", "expire_action": "run", "run_on_passive": true }, { "cmd": "/usr/syno/bin/syno_disk_smart_mail_send", "user": "root", "period": "crontab", "crontab": "~ ~ * * 0~3,4~6", "name": "syno_disk_smart_mail_send", "expire_action": "run", "run_on_passive": true }, { "cmd": "/usr/syno/bin/syno_smart_result_collect", "user": "root", "period": "weekly", "name": "syno_smart_result_collect", "expire_action": "run", "run_on_passive": true }, { "cmd": "/usr/syno/bin/syno_hungtask_config --reset", "user": "root", "period": "crontab", "crontab": "~ 0,6,12,18 * * *", "name": "syno_hungtask_config", "run_on_passive": true }]
但是这个不敢改成每个月执行一次,改成每天执行一次就行了:
{ "cmd": "/usr/syno/bin/syno_hungtask_config --reset", "user": "root", "period": "crontab", "crontab": "~ 0 * * *", "name": "syno_hungtask_config", "run_on_passive": true }
重启后,放置一天,发现竟然唤醒次数还是这么多,进去一看,改了crontab的那两个任务竟然还是被唤起,进入上述两个conf文件一看,crontab竟然被恢复了。原来 /usr/syno/etc/synocrond.config 文件才是罪魁祸首。
{ "jobs": { "builtin-dyn-autopkgupgrade-default": { "cmd_list": [ "/tmp/synocrond/builtin-dyn-autopkgupgrade-default", "chkupgradepkg" ], "cmd_str": "/usr/syno/bin/synopkg chkupgradepkg", "config": { "assure_execute": 168, "cmd": "/usr/syno/bin/synopkg chkupgradepkg", "crontab": "~ ~ * * 0,1,2,3,5", "expire": 24, "expire_action": "skip", "name": "builtin-dyn-autopkgupgrade-default", "period": "crontab", "run_on_passive": false, "user": "root" }, "expireTime": 0, "lastExecution": 1617159010, "schedule": { "Minute": [ 9 ], "day": [ -1 ], "hour": [ 0 ], "month": [ -1 ], "week": [ 0, 1, 2, 3, 5 ] }, "startup": 1612807460 }, "builtin-dyn-syno-ip-conflict-detection-syno-ip-conflict-detection": { "cmd_list": [ "/tmp/synocrond/builtin-dyn-syno-ip-conflict-detection-syno-ip-conflict-detection", "--detect" ], "cmd_str": "/usr/syno/sbin/syno_ip_conflict_detect --detect", "config": { "assure_execute": 0, "cmd": "/usr/syno/sbin/syno_ip_conflict_detect --detect", "crontab": "0 0,6,12,18 * * *", "expire": 3, "expire_action": "skip", "name": "builtin-dyn-syno-ip-conflict-detection-syno-ip-conflict-detection", "period": "crontab", "run_on_passive": false, "user": "root" }, "expireTime": 0, "lastExecution": 1617285371, "schedule": { "Minute": [ 0 ], "day": [ -1 ], "hour": [ 0, 6, 12, 18 ], "month": [ -1 ], "week": [ -1 ] }, "startup": 1616865773 }, "builtin-libhwcontrol-syno_disk_db_update": { "cmd_list": [ "/tmp/synocrond/builtin-libhwcontrol-syno_disk_db_update" ], "cmd_str": "/usr/syno/bin/syno_disk_db_update", "config": { "assure_execute": 0, "cmd": "/usr/syno/bin/syno_disk_db_update", "expire": 3, "expire_action": "run", "name": "builtin-libhwcontrol-syno_disk_db_update", "period": "monthly", "run_on_passive": true, "user": "root" }, "expireTime": 0, "lastExecution": 1616735713, "schedule": { "Minute": [ 25 ], "day": [ 10 ], "hour": [ 21 ], "month": [ -1 ], "week": [ -1 ] }, "startup": 1612807383 }, "builtin-libhwcontrol-syno_disk_smart_mail_send": { "cmd_list": [ "/tmp/synocrond/builtin-libhwcontrol-syno_disk_smart_mail_send" ], "cmd_str": "/usr/syno/bin/syno_disk_smart_mail_send", "config": { "assure_execute": 0, "cmd": "/usr/syno/bin/syno_disk_smart_mail_send", "crontab": "~ ~ * * 0~3,4~6", "expire": 3, "expire_action": "run", "name": "builtin-libhwcontrol-syno_disk_smart_mail_send", "period": "crontab", "run_on_passive": true, "user": "root" }, "expireTime": 0, "lastExecution": 1617061629, "schedule": { "Minute": [ 34 ], "day": [ -1 ], "hour": [ 13 ], "month": [ -1 ], "week": [ 2, 6 ] }, "startup": 1612807383 }, "builtin-libhwcontrol-syno_hungtask_config": { "cmd_list": [ "/tmp/synocrond/builtin-libhwcontrol-syno_hungtask_config", "--reset" ], "cmd_str": "/usr/syno/bin/syno_hungtask_config --reset", "config": { "assure_execute": 0, "cmd": "/usr/syno/bin/syno_hungtask_config --reset", "crontab": "~ 0,6,12,18 * * *", "expire": 3, "expire_action": "skip", "name": "builtin-libhwcontrol-syno_hungtask_config", "period": "crontab", "run_on_passive": true, "user": "root" }, "expireTime": 0, "lastExecution": 1617285371, "schedule": { "Minute": [ 58 ], "day": [ -1 ], "hour": [ 0, 6, 12, 18 ], "month": [ -1 ], "week": [ -1 ] }, "startup": 1612807383 }, "builtin-libhwcontrol-syno_smart_result_collect": { "cmd_list": [ "/tmp/synocrond/builtin-libhwcontrol-syno_smart_result_collect" ], "cmd_str": "/usr/syno/bin/syno_smart_result_collect", "config": { "assure_execute": 0, "cmd": "/usr/syno/bin/syno_smart_result_collect", "expire": 3, "expire_action": "run", "name": "builtin-libhwcontrol-syno_smart_result_collect", "period": "weekly", "run_on_passive": true, "user": "root" }, "expireTime": 0, "lastExecution": 1616680572, "schedule": { "Minute": [ 4 ], "day": [ -1 ], "hour": [ 16 ], "month": [ -1 ], "week": [ 2 ] }, "startup": 1612807383 }, "builtin-synobtrfssnap-default": { "cmd_list": [ "/tmp/synocrond/builtin-synobtrfssnap-default", "--clean-deleted-subvol" ], "cmd_str": "/usr/syno/sbin/synobtrfssnap --clean-deleted-subvol", "config": { "assure_execute": 0, "cmd": "/usr/syno/sbin/synobtrfssnap --clean-deleted-subvol", "expire": 3, "expire_action": "skip", "name": "builtin-synobtrfssnap-default", "period": "daily", "run_on_passive": false, "user": "root" }, "expireTime": 0, "lastExecution": 1617245411, "schedule": { "Minute": [ 21 ], "day": [ -1 ], "hour": [ 8 ], "month": [ -1 ], "week": [ -1 ] }, "startup": 1612807383 }, "builtin-synodatacollect-udc": { "cmd_list": [ "/tmp/synocrond/builtin-synodatacollect-udc", "udc" ], "cmd_str": "/usr/syno/bin/synodatacollect udc ", "config": { "assure_execute": 0, "cmd_list": [ "/usr/syno/bin/synodatacollect", "udc" ], "crontab": "~ ~ * * 0~6", "expire": 72, "expire_action": "skip", "name": "builtin-synodatacollect-udc", "period": "crontab", "run_on_passive": false, "user": "root" }, "expireTime": 0, "lastExecution": 1616499310, "schedule": { "Minute": [ 34 ], "day": [ -1 ], "hour": [ 17 ], "month": [ -1 ], "week": [ 6 ] }, "startup": 1612807383 }, "builtin-synodatacollect-udc-disk": { "cmd_list": [ "/tmp/synocrond/builtin-synodatacollect-udc-disk", "disk" ], "cmd_str": "/usr/syno/bin/synodiskdatacollect disk ", "config": { "assure_execute": 0, "cmd_list": [ "/usr/syno/bin/synodiskdatacollect", "disk" ], "crontab": "~ ~ * * 0~6", "expire": 72, "expire_action": "skip", "name": "builtin-synodatacollect-udc-disk", "period": "crontab", "run_on_passive": false, "user": "root" }, "expireTime": 0, "lastExecution": 1616735713, "schedule": { "Minute": [ 33 ], "day": [ -1 ], "hour": [ 16 ], "month": [ -1 ], "week": [ 0 ] }, "startup": 1612807383 }, "builtin-synodiskhealthprediction-syno_disk_data_collector": { "cmd_list": [ "/tmp/synocrond/builtin-synodiskhealthprediction-syno_disk_data_collector" ], "cmd_str": "/usr/syno/bin/synodiskhealthprediction.sh", "config": { "assure_execute": 0, "cmd": "/usr/syno/bin/synodiskhealthprediction.sh", "crontab": "0 0 * * *", "expire": 24, "expire_action": "skip", "name": "builtin-synodiskhealthprediction-syno_disk_data_collector", "period": "crontab", "run_on_passive": true, "user": "root" }, "expireTime": 0, "lastExecution": 1617206411, "schedule": { "Minute": [ 0 ], "day": [ -1 ], "hour": [ 0 ], "month": [ -1 ], "week": [ -1 ] }, "startup": 1612807383 }, "builtin-synodisklatencywriteback-syno_disk_latency_collector_writeback": { "cmd_list": [ "/tmp/synocrond/builtin-synodisklatencywriteback-syno_disk_latency_collector_writeback", "writeback" ], "cmd_str": "/usr/syno/bin/syno_disk_latency_collector writeback ", "config": { "assure_execute": 0, "cmd_list": [ "/usr/syno/bin/syno_disk_latency_collector", "writeback" ], "expire": 8, "expire_action": "run", "name": "builtin-synodisklatencywriteback-syno_disk_latency_collector_writeback", "period": "weekly", "run_on_passive": true, "user": "root" }, "expireTime": 0, "lastExecution": 1616672352, "schedule": { "Minute": [ 39 ], "day": [ -1 ], "hour": [ 2 ], "month": [ -1 ], "week": [ 0 ] }, "startup": 1612807383 }, "builtin-synosharesnaptree_reconstruct-default": { "cmd_list": [ "/tmp/synocrond/builtin-synosharesnaptree_reconstruct-default" ], "cmd_str": "/usr/syno/sbin/synosharesnaptree_reconstruct.sh", "config": { "assure_execute": 0, "cmd": "/usr/syno/sbin/synosharesnaptree_reconstruct.sh", "expire": 3, "expire_action": "skip", "name": "builtin-synosharesnaptree_reconstruct-default", "period": "daily", "run_on_passive": false, "user": "root" }, "expireTime": 0, "lastExecution": 1617270131, "schedule": { "Minute": [ 55 ], "day": [ -1 ], "hour": [ 12 ], "month": [ -1 ], "week": [ -1 ] }, "startup": 1612807383 }, "builtin-synosharing-default": { "cmd_list": [ "/tmp/synocrond/builtin-synosharing-default" ], "cmd_str": "/usr/syno/bin/synosharingcron", "config": { "assure_execute": 0, "cmd": "/usr/syno/bin/synosharingcron", "crontab": "~ 0~7 * * *", "expire": 24, "expire_action": "skip", "name": "builtin-synosharing-default", "period": "crontab", "run_on_passive": false, "user": "root" }, "expireTime": 0, "lastExecution": 1617245411, "schedule": { "Minute": [ 5 ], "day": [ -1 ], "hour": [ 7 ], "month": [ -1 ], "week": [ -1 ] }, "startup": 1612807383 } } }
为了方便编辑,将文件复制到共享文件夹
root@DiskStation:/volume1/DiskStation# cp /usr/syno/etc/synocrond.config /volume1/DiskStation/synocrond.json
编辑那两个任务的crontab和schedule字段
"builtin-dyn-syno-ip-conflict-detection-syno-ip-conflict-detection": { "cmd_list": [ "/tmp/synocrond/builtin-dyn-syno-ip-conflict-detection-syno-ip-conflict-detection", "--detect" ], "cmd_str": "/usr/syno/sbin/syno_ip_conflict_detect --detect", "config": { "assure_execute": 0, "cmd": "/usr/syno/sbin/syno_ip_conflict_detect --detect", "crontab": "0 0 9 * *", "expire": 3, "expire_action": "skip", "name": "builtin-dyn-syno-ip-conflict-detection-syno-ip-conflict-detection", "period": "crontab", "run_on_passive": false, "user": "root" }, "expireTime": 0, "lastExecution": 1617285371, "schedule": { "Minute": [ 0 ], "day": [ 9 ], "hour": [ 0 ], "month": [ -1 ], "week": [ -1 ] }, "startup": 1616865773 }, "builtin-libhwcontrol-syno_hungtask_config": { "cmd_list": [ "/tmp/synocrond/builtin-libhwcontrol-syno_hungtask_config", "--reset" ], "cmd_str": "/usr/syno/bin/syno_hungtask_config --reset", "config": { "assure_execute": 0, "cmd": "/usr/syno/bin/syno_hungtask_config --reset", "crontab": "~ 0 * * *", "expire": 3, "expire_action": "skip", "name": "builtin-libhwcontrol-syno_hungtask_config", "period": "crontab", "run_on_passive": true, "user": "root" }, "expireTime": 0, "lastExecution": 1617285371, "schedule": { "Minute": [ 58 ], "day": [ -1 ], "hour": [ 0 ], "month": [ -1 ], "week": [ -1 ] }, "startup": 1612807383 },
保存后再将配置文件覆盖回去
root@DiskStation:/volume1/DiskStation# cp /volume1/DiskStation/synocrond.json /usr/syno/etc/synocrond.config
重启后,发现 synocrond.config 这个文件竟然被重置了,诡异的是, builtin-libhwcontrol-syno_hungtask_config 的contab有保留更改,builtin-dyn-syno-ip-conflict-detection-syno-ip-conflict-detection 的crontab彻底被重置了。不过令人惊喜的是,/usr/syno/share/synocron.d/libhwcontrol.conf 的 syno_hungtask_config 节点有跟着自动被修改成每天零点执行:
{ "cmd": "/usr/syno/bin/syno_hungtask_config --reset", "user": "root", "period": "crontab", "crontab": "~ 0 * * *", "name": "syno_hungtask_config", "run_on_passive": true }
寻思着不改这么激进,让 ip-conflict 跟 hungtask 一样,改成每天凌晨0点执行,结果试了ip-conflict还是会被重置。
这时候发现了/usr/syno/etc/syno_ip_conflict_detect.conf 这个文件,于是将yes修改成no,结果重启后,/usr/syno/etc/synocrond.config 中builtin-dyn-syno-ip-conflict-detection-syno-ip-conflict-detection 的crontab依然被重置成 0 0,6,12,18 * * *
root@DiskStation:/usr/syno/etc# vim syno_ip_conflict_detect.conf
enable=no period=30
但是 /usr/syno/etc/synocron.d 下的 syno-ip-conflict-detection.conf 文件消失了,觉得有希望,继续放一天看日志
root@DiskStation:/usr/syno/etc/synocron.d# ls autopkgupgrade.conf
一天后,发现成功让 ip-conflict 跟 hungtask 任务都不再每隔几个小时唤醒一次,一整天都因为定时任务唤醒的次数明显变少
04-03 01:49:22 running job: builtin-synosharesnaptree_reconstruct-default with command: /usr/syno/sbin/synosharesnaptree_reconstruct.sh as user root 04-03 21:56:38 running job: builtin-synodatacollect-udc with command: /usr/syno/bin/synodatacollect udc as user root
synosharingcron
继续处理每天一次的定时任务 builtin-synosharing-default with command: /usr/syno/bin/synosharingcron as user root
root@DiskStation:/usr/syno/share/synocron.d# vim synosharing.conf
{ "cmd" : "/usr/syno/bin/synosharingcron", "crontab" : "~ 0~7 * * *", "expire" : 24, "expire_action" : "skip", "period" : "crontab", "user" : "root" }
改成每周日才执行
{ "cmd" : "/usr/syno/bin/synosharingcron", "crontab" : "~ 0~7 * * 0", "expire" : 24, "expire_action" : "skip", "period" : "crontab", "user" : "root" }
/usr/syno/etc/synocrond.config 中的 builtin-synosharing-default 节点也改一遍crontab和schedule
"builtin-synosharing-default": { "cmd_list": [ "/tmp/synocrond/builtin-synosharing-default" ], "cmd_str": "/usr/syno/bin/synosharingcron", "config": { "assure_execute": 0, "cmd": "/usr/syno/bin/synosharingcron", "crontab": "~ 0~7 * * *", "expire": 24, "expire_action": "skip", "name": "builtin-synosharing-default", "period": "crontab", "run_on_passive": false, "user": "root" }, "expireTime": 0, "lastExecution": 1617383733, "schedule": { "Minute": [ 23 ], "day": [ -1 ], "hour": [ 1 ], "month": [ -1 ], "week": [ -1 ] }, "startup": 1612807383 }
改为
"builtin-synosharing-default": { "cmd_list": [ "/tmp/synocrond/builtin-synosharing-default" ], "cmd_str": "/usr/syno/bin/synosharingcron", "config": { "assure_execute": 0, "cmd": "/usr/syno/bin/synosharingcron", "crontab": "~ 0~7 * * 0", "expire": 24, "expire_action": "skip", "name": "builtin-synosharing-default", "period": "crontab", "run_on_passive": false, "user": "root" }, "expireTime": 0, "lastExecution": 1617383733, "schedule": { "Minute": [ 30 ], "day": [ -1 ], "hour": [ 0 ], "month": [ -1 ], "week": [ 0 ] }, "startup": 1612807383 }
重启后发现 /usr/syno/share/synocron.d/synosharing.conf 的修改还在; /usr/syno/etc/synocrond.config 的修改也还在,但是schedule中的Minute和hour被重置了。等待一天后,果然 builtin-synosharing-default with command: /usr/syno/bin/synosharingcron as user root 这条之前每天都会执行的定时任务没有再执行。
chkupgradepkg
root@DiskStation:/usr/syno/etc/synocron.d# vim autopkgupgrade.conf
{ "assure_execute" : 168, "cmd" : "/usr/syno/bin/synopkg chkupgradepkg", "crontab" : "~ ~ * * 0,1,2,3,5", "expire" : 24, "expire_action" : "skip", "name" : "autopkgupgrade", "period" : "crontab", "user" : "root" }
改为只在周日执行
{ "assure_execute" : 168, "cmd" : "/usr/syno/bin/synopkg chkupgradepkg", "crontab" : "~ ~ * * 0", "expire" : 24, "expire_action" : "skip", "name" : "autopkgupgrade", "period" : "crontab", "user" : "root" }
/usr/syno/etc/synocrond.config 中的 builtin-synosharing-default 节点也改一遍crontab和schedule
"builtin-dyn-autopkgupgrade-default": { "cmd_list": [ "/tmp/synocrond/builtin-dyn-autopkgupgrade-default", "chkupgradepkg" ], "cmd_str": "/usr/syno/bin/synopkg chkupgradepkg", "config": { "assure_execute": 168, "cmd": "/usr/syno/bin/synopkg chkupgradepkg", "crontab": "~ ~ * * 0,1,2,3,5", "expire": 24, "expire_action": "skip", "name": "builtin-dyn-autopkgupgrade-default", "period": "crontab", "run_on_passive": false, "user": "root" }, "expireTime": 0, "lastExecution": 1617746212, "schedule": { "Minute": [ 10 ], "day": [ -1 ], "hour": [ 10 ], "month": [ -1 ], "week": [ 0, 1, 2, 3, 5 ] }, "startup": 1612807460 }
改为
"builtin-dyn-autopkgupgrade-default": { "cmd_list": [ "/tmp/synocrond/builtin-dyn-autopkgupgrade-default", "chkupgradepkg" ], "cmd_str": "/usr/syno/bin/synopkg chkupgradepkg", "config": { "assure_execute": 168, "cmd": "/usr/syno/bin/synopkg chkupgradepkg", "crontab": "~ ~ * * 0", "expire": 24, "expire_action": "skip", "name": "builtin-dyn-autopkgupgrade-default", "period": "crontab", "run_on_passive": false, "user": "root" }, "expireTime": 0, "lastExecution": 1617746212, "schedule": { "Minute": [ 30 ], "day": [ -1 ], "hour": [ 0 ], "month": [ -1 ], "week": [ 0 ] }, "startup": 1612807460 }
重启后发现 /usr/syno/etc/synocron.d/autopkgupgrade.conf 的修改还在,但是 /usr/syno/etc/synocrond.config 的修改被重置了。
时间对齐
剩下的定时任务都是硬盘相关的,不敢随便取消,所以只能尽量将任务的时间对齐,减少唤醒次数,但是 /usr/syno/etc/synocrond.config 中对crontab的修改开机会被重置为随机时间,并且实际执行的时候还不是这个时间。而 /usr/syno/share/synocron.d 下的各个conf有多个是daily没有指定具体crontab,或者即使指定了,实际执行的时候也不是按照这个时间,所以还没有找到规律,暂时无法将剩余的任务时间对齐。
04-12 00:30:28 running job: builtin-synodiskhealthprediction-syno_disk_data_collector with command: /usr/syno/bin/synodiskhealthprediction.sh as user root 04-12 00:30:38 running job: builtin-synodisklatencywriteback-syno_disk_latency_collector_writeback with command: /usr/syno/bin/syno_disk_latency_collector writeback as user root 04-12 01:19:28 running job: builtin-libhwcontrol-syno_hungtask_config with command: /usr/syno/bin/syno_hungtask_config --reset as user root 04-12 06:21:29 running job: builtin-synodisklatencywriteback-syno_disk_latency_collector_writeback with command: /usr/syno/bin/syno_disk_latency_collector writeback as user root 04-12 21:56:29 running job: builtin-synobtrfssnap-default with command: /usr/syno/sbin/synobtrfssnap --clean-deleted-subvol as user root 04-12 21:56:39 running job: builtin-synosharesnaptree_reconstruct-default with command: /usr/syno/sbin/synosharesnaptree_reconstruct.sh as user root
结果
从一天唤醒9-10次降低为7-8次,效果不是很明显。