发现每天同一个时间都会被唤醒

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次,效果不是很明显。