Touch File for Additional Transfer and Restore Log Diagnostic Entries


Last modified: February 21, 2024

Overview

Use the xferdebug touch file to display all restore actions in those logs. After you create the touch file, transfers will contain additional diagnostic lines.

The xferdebug touch file sends transfer calls through the Whostmgr::Remote::_exec_sshcontrol: module, which displays the SSH options that the system passed to the module.

Important:
When the xferdebug touch file exists, the system will log passwords in plain text.

Create or remove the touch file

To create the touch file, run the following command through an SSH connection as the root user:

touch /var/cpanel/xferdebug && /usr/local/cpanel/scripts/synctransfers

To remove the touch file, run the following command:

rm -fv /var/cpanel/xferdebug && /usr/local/cpanel/scripts/synctransfers

Examples

Transfer log with the touch file

The following examples show the SSH options that a user passed to the module to help diagnose connectivity or authentication issues between the servers:

1
2
3
4
Whostmgr::Remote::_exec_sshcontrol: [/usr/local/cpanel/scripts/sshcontrol --ctl ssh --host 192.168.0.1 --port 22 --authuser username --escmethod sudo --sshkey username@example.com --stay_alive 1 --die_on_pid 25762]
Whostmgr::Remote::_exec_sshcontrol: [/usr/local/cpanel/scripts/sshcontrol --ctl scp --host 192.168.0.1.xxx --port 22 --authuser username --escmethod sudo --sshkey username@example.com --direction download --srcfile /home/username/cpmove-cprichsu-split/cpmove-cprichsu.tar.gz.part00001 --destfile . --external_master /root/.libnet-openssh-perl/username-208.74.1-25767-830516 --die_on_pid 25762]
Copying account package file... ...
Whostmgr::Remote::_exec_sshcontrol: [/usr/local/cpanel/scripts/sshcontrol --ctl ssh --host 192.168.0.1 --port 22 --authuser username --escmethod sudo --sshkey username@example.com --external_master /root/.libnet-openssh-perl/username-208.74.1-25767-830516 --die_on_pid 25762]

Restore log without the touch file

The following example is a normal restore log:

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
Domains
Retrieving and sanitizing main userdata ...
Parsing domain databases ...
...Subdomains...
...ParkedDomains...
...AddonDomains...
Restoring Domains ...
Restoring Subdomain "site1.ajeff.test" ...
The subdomain, site1.ajeff.test has been added.
Done
Restoring Addon Domain "ajeff2.test" on to "site1.ajeff.test" ...
Domain was successfully parked.
Done
Restoring Subdomain "sub1.ajeff.test" ...
The subdomain, sub1.ajeff.test has been added.
Done
Domains
Domains restored
Cron
Restoring crontab
Cron
Roundcube
Roundcube
CustomLocale
CustomLocale
OK
Password
Restoring password ...
Password for "ajeff" has been changed.
Password
Restore log with the touch file

The following example is a log of the same restoration with a touch file enabled:
 Collapse source
Domains
Retrieving and sanitizing main userdata ...
Parsing domain databases ...
...Subdomains...
...ParkedDomains...
...AddonDomains...
Restoring Domains ...
Restoring Subdomain "site1.ajeff.test" ...
The subdomain, site1.ajeff.test has been added.
Done
Restoring Addon Domain "ajeff2.test" on to "site1.ajeff.test" ...
Domain was successfully parked.
Done
Restoring Subdomain "sub1.ajeff.test" ...
The subdomain, sub1.ajeff.test has been added.
Done
Domains
Domains restored
NobodyFiles
NobodyFiles
Frontpage
Restoring Frontpage (if installed)...
Frontpage
Frontpage restored
Counter
Counter
BackupConfig
Restoring backup config
Updated backup config for "ajeff"
Restoring legacy backup config
Updated legacy backup config for "ajeff"
BackupConfig
Reseller
Restoring reseller packages and features (if any)
Restoring reseller privileges (if any)
Reseller
DKIM
DKIM
The account does not have any DKIM keys to restore.
Mail
Restoring Mail files
Mail
Unsuspend
Unsuspending .htaccess files for domains: "ajeff.test, site1.ajeff.test, ajeff2.test, and sub1.ajeff.test"
Unsuspend
MailRouting
Update mail routing
LOCAL MAIL EXCHANGER: This server will serve as a primary mail exchanger for ajeff.test's mail.This configuration has been manually selected.
LOCAL MAIL EXCHANGER: This server will serve as a primary mail exchanger for site1.ajeff.test's mail.This configuration has been automatically detected based on your mx entries.
LOCAL MAIL EXCHANGER: This server will serve as a primary mail exchanger for ajeff2.test's mail.This configuration has been automatically detected based on your mx entries.
LOCAL MAIL EXCHANGER: This server will serve as a primary mail exchanger for sub1.ajeff.test's mail.This configuration has been automatically detected based on your mx entries.
MailRouting
CustomLocale
CustomLocale
OK
Roundcube
Roundcube
DigestShadow
DigestShadow
FileProtect
Doing fileprotect conversion
FileProtect
VhostIncludes
Restoring custom virtualhost templates...
VhostIncludes
ZoneFile
Restoring DNS zones
Restoring zone: ajeff2.test.db
Changed all instances of [192.168.1.203] -> [10.5.40.48] in ajeff2.test
Restoring zone: ajeff.test.db
Changed all instances of [192.168.1.203] -> [10.5.40.48] in ajeff.test
Zone updates: ajeff.test, ajeff2.test
ZoneFile
Ftp
Ftp
Password
Restoring password ...
Password for "ajeff" has been changed.
Password
MailFix
Fixing mail permissions
Converting to maildir if needed
MailFix
Mailman
Restoring Mailman lists
Mailman
Mailman Restored
BandwidthData
Restoring Bandwidth Data
BandwidthData
Postgres
Preparing PostgreSQL restore ...
This system does not have PostgreSQL.
Postgres
Logaholic
Logaholic
Cron
Restoring crontab
Cron
ProxySubdomains
Update Proxy subdomains for "ajeff"
ajeff.test [ajeff.test, 10.5.40.48, +A@webdisk, +A@whm, +A@cpanel]
ajeff2.test [ajeff2.test, 10.5.40.48, +A@webdisk]
site1.ajeff.test [ajeff.test, 10.5.40.48, +A@webdisk.site1]
sub1.ajeff.test [ajeff.test, 10.5.40.48, +A@webdisk.sub1]
ProxySubdomains
SSL
Migrating pre-SSLStorage home directory resources...
SSL
Mysql
Preparing MySQL restore ...
Restoring MySQL databases
Restoring the database "ajeff_db1" as "ajeff_db1" ...
The system has created a new database named "ajeff_db1".
Granting "ajeff" access to "ajeff_db1" with temporary password ...
Connecting to MySQL server as "ajeff" in order to restore "ajeff_db1".
Restoring database data for "ajeff_db1".
The system has restored the contents of the database "ajeff_db1".
Restoring MySQL database mappings
Restoring MySQL privileges
Restoring MySQL grants
Restoring MySQL access hosts
Reloading MySQL
Mysql
SPF
Updating SPF Records
SPF
Logs
Logs
userdata
Restoring userdata...
Restoring userdata for "ajeff.test".
Restoring userdata for "site1.ajeff.test".
Restoring userdata for "ajeff2.test".
Restoring userdata for "sub1.ajeff.test".
userdata

The touch file information displays the details of each step in the restoration process. This can help you to determine whether the system did not restore or rename part of an account.

Additional Documentation