To specify EXEC command-line interface (CLI) commands within a Command Scheduler policy list, use the cli command in kron-policy configuration mode. To delete a CLI command from the current policy list, use the no form of this command.
clicommand
noclicommand
Syntax Description
command
EXEC-mode CLI command that must not generate a prompt or allow interruption by a keystroke.
Command Default
No CLI commands are specified.
Command Modes
Kron-policy configuration (config-kron-policy)
Command History
Release
Modification
12.3(1)
This command was introduced.
12.2(33)SRA
This command was integrated into Cisco IOS Release 12.2(33)SRA.
12.2(33)SB
This command was integrated into Cisco IOS Release 12.2(33)SB.
12.2(33)SXI
This command was integrated into Cisco IOS Release 12.2(33)SXI.
Usage Guidelines
Use the cli command in conjunction with the kronpolicy-list command to create a policy list containing EXEC CLI commands to be scheduled to run on the router at a specified time. Use the kronoccurrence and policy-list commands to schedule one or more policy lists to run at the same time or interval.
The Command Scheduler process is useful to automate the running of EXEC commands at recurring intervals, and it can be used in remote routers to minimize manual intervention.
Examples
The following example shows how to configure the EXEC command cnsimageretrieve within the policy list named three-day-list:
Router(config)# kron policy-list three-day-list
Router(config-kron-policy)# cli cns image retrieve server https://10.19.2.3/cns/image/ status https://10.19.2.3/cnsstatus/imageinfo/
Related Commands
Command
Description
kronoccurrence
Specifies schedule parameters for a Command Scheduler occurrence and enters kron-occurrence configuration mode.
kronpolicy-list
Specifies a name for a Command Scheduler policy and enters kron-policy configuration mode.
policy-list
Specifies the policy list associated with a Command Scheduler occurrence.
policy-list
To associate a policy list with a Command Scheduler occurrence, use the policy-list command in kron-occurrence configuration mode. To delete a policy list from the Command Scheduler occurrence, use the no form of this command.
This command was integrated into Cisco IOS Release 12.2(33)SRA.
12.2(33)SB
This command was integrated into Cisco IOS Release 12.2(33)SB.
12.2(33)SXI
This command was integrated into Cisco IOS Release 12.2(33)SXI.
Usage Guidelines
Use the policy-list command with the kronoccurrence command to schedule one or more policy lists to run at the same time or interval. Use the kronpolicy-list command in conjunction with the cli command to create a Command Scheduler policy list containing EXEC command line interface (CLI) commands to be scheduled to run on the router at a specified time.
When the list-name is new, a policy list structure is created. When the list-name is not new, the existing policy list is edited.
The Command Scheduler process is useful to automate the running of EXEC commands at recurring intervals, and can it be used in remote routers to minimize manual intervention.
Examples
The following example shows how to create a Command Scheduler occurrence named may and associate a policy list named sales-may with the occurrence:
Router(config)# kron occurrence may at 6:30 may 20 oneshot
Router(config-kron-occurrence)# policy-list sales-may
Related Commands
Command
Description
cli
Specifies EXEC CLI commands within a Command Scheduler policy list.
kronoccurrence
Specifies schedule parameters for a Command Scheduler occurrence and enters kron-occurrence configuration mode.
kronpolicy-list
Specifies a name for a Command Scheduler policy and enters kron-policy configuration mode.
scripting tcl encdir
To specify the default location of external encoding files used by the Tool Command Language (Tcl) shell, use the scriptingtclencdir command in global configuration mode. To remove the default location, use the no form of this command.
scriptingtclencdirlocation-url
noscriptingtclencdir
Syntax Description
location-url
The URL used to access external encoding files used by Tcl.
Command Default
Tcl does not use external encoding files.
Command Modes
Global configuration
Command History
Release
Modification
12.3(2)T
This command was introduced.
12.2(25)S
This command was integrated into Cisco IOS Release 12.2(25)S.
12.2SX
This command is supported in the Cisco IOS Release 12.2SX train. Support in a specific 12.2SX release of this train depends on your feature set, platform, and platform hardware.
12.2(33)SRC
This command was integrated into Cisco IOS Release 12.2(33)SRC.
12.2(31)SB
This command was integrated into Cisco IOS Release 12.2(31)SB.
12.2(33)SB
This command's behavior was modified and implemented on the Cisco 10000 series router for the PRE3 and PRE4.
Usage Guidelines
Character strings in Tcl are encoded using 16-bit Unicode characters. Different operating system interfaces or applications can generate character strings using other encoding methods. Use the scriptingtclencdircommand to configure a location URL for the external Tcl character encoding files to support the Tcl encoding command.
Tcl contains only a few character sets within the Tcl shell. Additional characters sets are loaded, as needed, from external files.
Cisco 10000 Series Router Usage Guidelines
In Cisco IOS Release 12.2(33)SB, the router removes the no scripting tcl encdir command from the default configuration.
Examples
The following example shows how to specify a default location for external encoding files to be used by Tcl:
Specifies an initialization script for the Tcl shell.
tclsh
Enables the Tcl shell and enters Tcl configuration mode.
scripting tcl init
To specify an initialization script for the Tool Command Language (Tcl) shell, use the scriptingtclinit command in global configuration mode. To remove the initialization script, use the no form of this command.
scriptingtclinitinit-url
noscriptingtclinit
Syntax Description
init-url
The URL used to access the initialization script to be used by Tcl.
Command Default
Tcl does not run an initialization script.
Command Modes
Global configuration
Command History
Release
Modification
12.3(2)T
This command was introduced.
12.2(25)S
This command was integrated into Cisco IOS Release 12.2(25)S.
12.2SX
This command is supported in the Cisco IOS Release 12.2SX train. Support in a specific 12.2SX release of this train depends on your feature set, platform, and platform hardware.
12.2(33)SRC
This command was integrated into Cisco IOS Release 12.2(33)SRC.
12.2(31)SB
This command was integrated into Cisco IOS Release 12.2(31)SB.
12.2(33)SB
This command's behavior was modified and implemented on the Cisco 10000 series router for the PRE3 and PRE4.
Usage Guidelines
Use the scriptingtclinit command when you want to predefine Tcl procedures to run in an initialization script. The initialization script runs when the Tcl shell is entered and saves manual sourcing of the individual scripts.
Cisco 10000 Series Router Usage Guidelines
In Cisco IOS Release 12.2(33)SB, the router removes the no scripting tcl init command from the default configuration.
Examples
The following example shows how to specify an initialization script to run when the Tcl shell is enabled:
Specifies the default location of external encoding files used by the Tcl shell.
tclsh
Enables the Tcl shell and enters Tcl configuration mode.
scripting tcl low-memory
To set a low memory threshold for free memory for Tool Command Language (Tcl)-based applications, use the scriptingtcllow-memorycommand in global configuration mode. To remove the specific low memory threshold and return to using the default value, use the no form of this command.
scriptingtcllow-memorybytes
noscriptingtcllow-memory
Syntax Description
bytes
Specifies the low memory threshold. The memory threshold can be set from 0 to 4294967295 bytes.
Command Default
The default value is 25 percent of the available free memory at start up when Tcl initializes.
Note
The default is platform-specific. (It depends on how much memory is installed, and how much memory is free when Tcl initializes).
Command Modes
Global configuration (config)
Command History
Release
Modification
12.3(4)T
This command was introduced.
12.2(25)S
This command was integrated into Cisco IOS Release 12.2(25)S.
12.2SX
This command is supported in the Cisco IOS Release 12.2SX train. Support in a specific 12.2SX release of this train depends on your feature set, platform, and platform hardware.
12.2(33)SRC
This command was integrated into Cisco IOS Release 12.2(33)SRC.
12.2(33)SB
This command was integrated into Cisco IOS Release 12.2(33)SB.
Usage Guidelines
Use the scriptingtcllow-memory command to set the threshold for free memory. If minimum free RAM drops below this threshold, Tcl aborts the current script. This prevents the Tcl interpreter from allocating too much RAM and crashing the router.
Examples
The following example shows how to set the threshold for free memory when the Tcl shell is initialized:
Specifies the default location of external encoding files used by the Tcl shell.
scriptingtclinit
Specifies an initialization script for the Tcl shell.
tclsh
Enables the Tcl shell and enters Tcl configuration mode.
scripting tcl secure-mode
To enable signature verification of the interactive Tool Command Language (Tcl) scripts, use the scriptingtclsecure-modecommand in global configuration mode. To disable signature verification of the interactive Tcl scripts, use the no form of this command.
scriptingtclsecure-mode
noscriptingtclsecure-mode
Syntax Description
This command has no arguments or keywords.
Command Default
The signature verification of the interactive Tcl scripts is disabled.
Command Modes
Global configuration (config)
Command History
Release
Modification
12.4(15)T
This command was introduced.
Usage Guidelines
Use the scriptingtclsecure-modecommand to enable signature verification of all Tcl scripts run on the router. By default, the signature verification of the interactive Tcl scripts is disabled. You must enable the signature verification in order to verify whether the Tcl scripts match their digital signature. That would indicate they have not been altered since the digital signature was generated. If the script does not contain the digital signature, the script may run in a limited mode for untrusted script (that is, a script that has failed signature verification) or may not run at all. After receiving the results from the signature verification, the scripts are executed.
A Cisco IOS Crypto image software is required to enable this command and configure the Signed Tcl Scripts feature. The Crypto configuration commands enable the Cisco x.509 certificate storage. The scriptingtclsecure-modecommand can be enabled after the Crypto configuration trustpoint commands are enabled.
The scriptingtcltrustpointname command must be configured with the scriptingtclsecure-modecommand to verify the integrity of Tcl script signatures run on the router. Both commands must be configured to fully operate the feature; otherwise, a syslog message is generated:
*Jun 13 17:35:14.219: %SYS-6-SCRIPTING_TCL_INVALID_OR_MISSING_SIGNATURE: tcl signing validation failed on script signed with trustpoint name mytrust, cannot run the signed TCL script.
In addition, the cryptopkitrustpointname command provided should contain a certificate that matches the certificate that was originally used to generate the digital signature on the Tcl script.
Examples
The following example shows how to enable signature verification of the interactive Tcl scripts:
Router(config)# crypto pki trustpoint mytrust
Router(ca-trustpoint)# enrolment terminal
Router(ca-trustpoint)# exit
Router(config)# crypto pki authenticate mytrust
Enter the base 64 encoded CA certificate.
End with a blank line or the word "quit" on a line by itself
MIIEuDCCA6CgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBnjELMAkGA1UEBhMCVVMx
EzARBgNVBAgTCkNhbGlmb3JuaWExETAPBgNVBAcTCFNhbiBKb3NlMRwwGgYDVQQK
ExNDaXNjbyBTeXN0ZW1zLCBJbmMuMQ4wDAYDVQQLEwVOU1NURzEWMBQGA1UEAxMN
Sm9obiBMYXV0bWFubjEhMB8GCSqGSIb3DQEJARYSamxhdXRtYW5AY2lzY28uY29t
MB4XDTA2MTExNzE3NTgwMVoXDTA5MTExNjE3NTgwMVowgZ4xCzAJBgNVBAYTAlVT
MRMwEQYDVQQIEwpDYWxpZm9ybmlhMREwDwYDVQQHEwhTYW4gSm9zZTEcMBoGA1UE
ChMTQ2lzY28gU3lzdGVtcywgSW5jLjEOMAwGA1UECxMFTlNTVEcxFjAUBgNVBAMT
DUpvaG4gTGF1dG1hbm4xITAfBgkqhkiG9w0BCQEWEmpsYXV0bWFuQGNpc2NvLmNv
bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALxtqTMCirMb+CdyWLuH
oWAM8CEJDwQggL7MWBhoi3TSMd/ww2XBB9biBtdlH6jHsjCiOwAR5OorakwfPyf7
mvRJ2PqJALs+Vn93VBKIG6rZUl4+wdOx686BVddIZvEJQPbROiYTzfazWV70aLMV
bd7/B7vF1SG1YK9y1tX9p9nZyZ0x47OAXetwOaGinvlG7VNuTXaASBLUjCRZsIlz
SBrXXedBzZ6+BuoWm1FK45EYSlag5Rt9RGXXMBqzx91iyhrJ3zDDmkExa45yKJET
mAgDVMcpeteJtif47UDZJK30g4MbMyx/c8WGhmJ54qRL9BZEPmDxMQkNP10l8MAl
Q8sCAwEAAaOB/jCB+zAdBgNVHQ4EFgQU9/ToDvbMR3JfJ4xEa4X47oNFq5kwgcsG
A1UdIwSBwzCBwIAU9/ToDvbMR3JfJ4xEa4X47oNFq5mhgaSkgaEwgZ4xCzAJBgNV
BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMREwDwYDVQQHEwhTYW4gSm9zZTEc
MBoGA1UEChMTQ2lzY28gU3lzdGVtcywgSW5jLjEOMAwGA1UECxMFTlNTVEcxFjAU
BgNVBAMTDUpvaG4gTGF1dG1hbm4xITAfBgkqhkiG9w0BCQEWEmpsYXV0bWFuQGNp
c2NvLmNvbYIBADAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4IBAQBtEs/4
MQeN9pT+XPCPg2ObQU8y2AadI+I34YK+fDHsFOh68hZhpszTN2VpNEvkFXpADhgr
7DkNGtwTCla481v70iNFViQVL+inNrZwWMxoTnUNCK7Hc5kHkXt6cj0mvsefVUzx
Xl70mauhESRVlmYWrJxSsrEILerZYsuv5HbFdand+/rErmP2HVyfdntLnKdSzmXJ
5lwE/Et2QtYNGor0OBlLesowfslR3LhHi4wn+5is7mALgNw/NuTiUr1zH18OeB4m
wcpBIJsLaJu6ZUJQl7IqdswSa3fHd5qq0/k8P9z0YAYrf3+MFQr4ibvsYvHlO087
o2Js1gW4qz34pqNh
Certificate has the following attributes:
Fingerprint MD5: 1E327DBB 330936EB 2FB8EACB 4FD1133E
Fingerprint SHA1: EE7FF9F4 05148842 B9D50FAC D76FDC9C E0703246
% Do you accept this certificate? [yes/no]: yes
Trustpoint CA certificate accepted.
% Certificate successfully imported
Router(config)# scripting tcl secure-mode
Router(config)# scripting tcl trustpoint name mytrust
Related Commands
Command
Description
scriptingtcltrustpointname
Associates an existing configured trustpoint name with a certificate to verify Tcl scripts.
scripting tcl trustpoint name
To associate an existing configured trustpoint name with a certificate to verify Tool Command Language (Tcl) scripts, use the scriptingtcltrustpointnamecommand in global configuration mode. To remove an existing configured trustpoint name, use the no form of this command.
scriptingtcltrustpointnamename
noscriptingtcltrustpointnamename
Syntax Description
name
Name of the configured trustpoint name associated with a certificate. Only one name can be associated with one certificate.
Command Default
A trustpoint name is not associated with a certificate to verify the Tcl scripts.
Command Modes
Global configuration (config)
Command History
Release
Modification
12.4(15)T
This command was introduced.
Usage Guidelines
Use the scriptingtcltrustpointnamecommand to associate an existing configured trustpoint name with a certificate to verify Tcl scripts. This way, Tcl identifies which certificate is used for verifying the Tcl scripts. The name must match an existing configured trustpoint name, otherwise, the command is rejected with an error message on the console. You can enter the command multiple times and configure multiple trustpoint names. Once you enter the command, you cannot modify the trustpoint name. However, you can remove the trustpoint name using the no form of the command. You must individually remove each name. When the last name is removed, no signature checking is performed, and the untrusted script (that is, a script that has failed signature verification) action configured by the scriptingtcltrustpointuntrusted command is also removed.
A Cisco IOS Crypto image software is required to enable this command and configure the Signed Tcl Scripts feature. The Crypto configuration commands enable the Cisco x.509 certificate storage. The scriptingtcltrustpointnamecommand can be enabled after the Crypto configuration trustpoint commands are enabled.
The scriptingtclsecure-modecommand must be configured with the scriptingtcltrustpointnamecommand to verify the integrity of Tcl script signatures run on the router. Both commands must be configured to fully operate this feature; otherwise, a syslog message is generated:
*Jun 13 17:53:31.659: %SYS-6-SCRIPTING_TCL_SECURE_TRUSTPOINT: scripting tcl secure-mode is enabled, however no scripting tcl trustpoint names configured, cannot verify signed TCL script.
In addition, the cryptopkitrustpointname command provided should contain a certificate that matches the certificate that was originally used to generate the digital signature on the Tcl script.
Examples
The following example shows how the scriptingtcltrustpointnamecommand is used to associate existing trustpoint names. Different names can be used for different departments with certificates:
Router(config)# crypto pki trustpoint mytrust
Router(ca-trustpoint)# enrolment terminal
Router(ca-trustpoint)# exit
Router(config)# crypto pki authenticate mytrust
Enter the base 64 encoded CA certificate.
End with a blank line or the word "quit" on a line by itself
MIIEuDCCA6CgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBnjELMAkGA1UEBhMCVVMx
EzARBgNVBAgTCkNhbGlmb3JuaWExETAPBgNVBAcTCFNhbiBKb3NlMRwwGgYDVQQK
ExNDaXNjbyBTeXN0ZW1zLCBJbmMuMQ4wDAYDVQQLEwVOU1NURzEWMBQGA1UEAxMN
Sm9obiBMYXV0bWFubjEhMB8GCSqGSIb3DQEJARYSamxhdXRtYW5AY2lzY28uY29t
MB4XDTA2MTExNzE3NTgwMVoXDTA5MTExNjE3NTgwMVowgZ4xCzAJBgNVBAYTAlVT
MRMwEQYDVQQIEwpDYWxpZm9ybmlhMREwDwYDVQQHEwhTYW4gSm9zZTEcMBoGA1UE
ChMTQ2lzY28gU3lzdGVtcywgSW5jLjEOMAwGA1UECxMFTlNTVEcxFjAUBgNVBAMT
DUpvaG4gTGF1dG1hbm4xITAfBgkqhkiG9w0BCQEWEmpsYXV0bWFuQGNpc2NvLmNv
bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALxtqTMCirMb+CdyWLuH
oWAM8CEJDwQggL7MWBhoi3TSMd/ww2XBB9biBtdlH6jHsjCiOwAR5OorakwfPyf7
mvRJ2PqJALs+Vn93VBKIG6rZUl4+wdOx686BVddIZvEJQPbROiYTzfazWV70aLMV
bd7/B7vF1SG1YK9y1tX9p9nZyZ0x47OAXetwOaGinvlG7VNuTXaASBLUjCRZsIlz
SBrXXedBzZ6+BuoWm1FK45EYSlag5Rt9RGXXMBqzx91iyhrJ3zDDmkExa45yKJET
mAgDVMcpeteJtif47UDZJK30g4MbMyx/c8WGhmJ54qRL9BZEPmDxMQkNP10l8MAl
Q8sCAwEAAaOB/jCB+zAdBgNVHQ4EFgQU9/ToDvbMR3JfJ4xEa4X47oNFq5kwgcsG
A1UdIwSBwzCBwIAU9/ToDvbMR3JfJ4xEa4X47oNFq5mhgaSkgaEwgZ4xCzAJBgNV
BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMREwDwYDVQQHEwhTYW4gSm9zZTEc
MBoGA1UEChMTQ2lzY28gU3lzdGVtcywgSW5jLjEOMAwGA1UECxMFTlNTVEcxFjAU
BgNVBAMTDUpvaG4gTGF1dG1hbm4xITAfBgkqhkiG9w0BCQEWEmpsYXV0bWFuQGNp
c2NvLmNvbYIBADAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4IBAQBtEs/4
MQeN9pT+XPCPg2ObQU8y2AadI+I34YK+fDHsFOh68hZhpszTN2VpNEvkFXpADhgr
7DkNGtwTCla481v70iNFViQVL+inNrZwWMxoTnUNCK7Hc5kHkXt6cj0mvsefVUzx
Xl70mauhESRVlmYWrJxSsrEILerZYsuv5HbFdand+/rErmP2HVyfdntLnKdSzmXJ
5lwE/Et2QtYNGor0OBlLesowfslR3LhHi4wn+5is7mALgNw/NuTiUr1zH18OeB4m
wcpBIJsLaJu6ZUJQl7IqdswSa3fHd5qq0/k8P9z0YAYrf3+MFQr4ibvsYvHlO087
o2Js1gW4qz34pqNh
Certificate has the following attributes:
Fingerprint MD5: 1E327DBB 330936EB 2FB8EACB 4FD1133E
Fingerprint SHA1: EE7FF9F4 05148842 B9D50FAC D76FDC9C E0703246
% Do you accept this certificate? [yes/no]: yes
Trustpoint CA certificate accepted.
% Certificate successfully imported
Router(config)# scripting tcl secure-mode
Router(config)# scripting tcl trustpoint name mytrust
Router(config)# scripting tcl trustpoint name dept_accounting
Router(config)# scripting tcl trustpoint name dept_hr
Related Commands
Command
Description
scriptingtclsecure-mode
Enables signature verification of the interactive Tcl scripts.
scripting tcl trustpoint untrusted
To allow the interactive Tool Command Language (Tcl) scripts to run regardless of the scripts failing the signature check, use the scriptingtcltrustpointuntrustedcommand in global configuration mode. To disallow the interactive Tcl scripts to run regardless of the scripts failing the signature check, use the no form of this command.
Executes Tcl scripts even if the signature verification fails.
Caution
Use of this keyword is usually not recommended because the signature verification is not performed if theexecute keyword is configured.
safe-execute
Executes the Tcl script in safe mode if the signature verification fails.
terminate
Does not run the Tcl script if the signature verification fails. The default keyword is terminate.
Command Default
No script that fails signature verification can run; the script immediately stops.
Command Modes
Global configuration (config)
Command History
Release
Modification
12.4(15)T
This command was introduced.
Usage Guidelines
Use the scriptingtcltrustpointuntrustedcommand to allow the interactive Tcl scripts to run regardless of the scripts failing the signature check or in untrusted mode. The untrusted script (that is, a script that has failed signature verification) is not safe to use.
Caution
Use of the execute keyword is usually not recommended because the signature verification is not performed.
The execute keyword is provided for internal testing purposes and to provide flexibility. For example in a situation where a certificate has expired but the other configurations are valid and you want to work with the existing configuration, then you can use the execute keyword to work around the expired certificate.
The safe-execute keyword allows the script to run in safe mode. You can use the tclsafe command and also enter the interactive Tcl shell safe mode to explore the safe mode Tcl commands that are available. In order to get a better understanding of what is available in this limited safe mode, use the tclsafe Exec command to explore the options.
The terminate keyword stops any script from running and reverts to default behavior. The default policy is to terminate. When the last trustpoint name is removed, the untrusted action is also removed. The untrusted action cannot be entered until at least one trustpoint name is configured for Tcl.
Note
This command only applies to the Tcl shell; it does not impact other components that make use of Tcl. For example, Embedded Event Manager (EEM) cannot perform any signature checking.
Examples
The following example shows how to execute the Tcl script in safe mode if the signature verification fails:
Associates an existing configured trustpoint name with a certificate to verify Tcl scripts.
tclsafe
Enables the interactive Tcl shell untrusted safe mode.
tclquit
To quit the interactive Tool Command Language (Tcl) shell, use the tclquit command in privileged EXEC mode.
tclquit
Syntax Description
This command has no arguments or keywords.
Command Default
The Tcl shell is disabled.
Command Modes
Privileged EXEC (#)
Command History
Release
Modification
12.3(2)T
This command was introduced.
12.2(25)S
This command was integrated into Cisco IOS Release 12.2(25)S.
12.2(33)SRA
This command was integrated into Cisco IOS Release 12.2(33)SRA.
12.2SX
This command is supported in the Cisco IOS Release 12.2SX train. Support in a specific 12.2SX release of this train depends on your feature set, platform, and platform hardware.
12.2(33)SB
This command was integrated into Cisco IOS Release 12.2(33)SB.
Examples
The following example shows how to disable the interactive Tcl shell:
Enables the interactive Tcl shell untrusted safe mode.
tclsafe
To enable the interactive Tool Command Language (Tcl) shell untrusted safe mode, use the tclsafe command in privileged EXEC mode. To exit from the safe mode, use the exitor the tclquit command.
tclsafe
Syntax Description
This command has no arguments or keywords.
Command Default
The Tcl shell untrusted safe mode is disabled.
Command Modes
Privileged EXEC (#)
Command History
Release
Modification
12.4(15)T
This command was introduced.
Usage Guidelines
Use the tclsafe command when you want to manually run Tcl commands from the Cisco IOS command-line interface (CLI) in untrusted safe mode. When you use the tclsafe command and enter the interactive Tcl shell safe mode, you can explore the safe mode Tcl commands that are available. When a script fails the signature check for a configured trustpoint name, it is determined to be untrusted. Untrusted Tcl scripts execute in limited safe mode, if scriptingtcltrustpointuntrustedsafe-execute command is configured. In order to get a better understanding of what is available in this limited safe mode, use the tclsafe Exec command to explore the options.
After Tcl commands are entered they are sent to a Tcl interpreter. If the commands are recognized as valid Tcl commands, the command is executed and the result is sent to the tty. If a command is not a recognized Tcl command, it is sent to the Cisco IOS CLI parser. If the command is not a Tcl or Cisco IOS command, two error messages are displayed.
A predefined Tcl script can be created outside of Cisco IOS software, transferred to flash or disk memory, and run within Cisco IOS software. It is also possible to create a Tcl script and precompile the code before running it under Cisco IOS software. To exit from this mode, use the exit or the tclquit command to disable the use of the Tcl shell and return to privileged EXEC mode.
You can also use the tclsafe command with a script name such as tclsafedisk0:hello.tcl. The script hello.tcl executes immediately and allows you to exit from the untrusted safe mode and return to privileged EXEC mode.
Examples
The following example shows how to enable the Tcl shell untrusted safe mode and run infocommands:
Router# tclsafe
Router(safe)(tcl)# info commands
info commands
tell socket subst open eof glob list pid time eval lrange tcl_trace fblocked lsearch gets case lappend proc break variable llength return linsert error catch clock info split array if fconfigure concat join lreplace source fcopy global switch update close cd for file append format read package set binary namespace scan seek while flush after vwait uplevel continue hostname foreach rename fileevent regexp upvar unset encoding expr load regsub interp history puts incr lindex lsort string
The following example shows how to execute the script hello.tcl to exit from the untrusted safe mode and return to privileged EXEC mode.
Router# tclsafe disk0:hello.tcl
Related Commands
Command
Description
scriptingtcltrustpointuntrusted
Allows the interactive Tcl scripts to run regardless of the scripts failing the signature check.
tclquit
Quits Tcl shell.
tclsh
Enables the interactive Tcl shell and enters Tcl configuration mode.
tclsh
To enable the interactive Tool Command Language (Tcl) shell, use the tclsh command in privileged EXEC mode.
tclsh
Syntax Description
This command has no arguments or keywords.
Command Default
The Tcl shell is disabled.
Command Modes
Privileged EXEC
Command History
Release
Modification
12.3(2)T
This command was introduced.
12.2(25)S
This command was integrated into Cisco IOS Release 12.2(25)S.
12.2(33)SRA
This command was integrated into Cisco IOS Release 12.2(33)SRA.
12.2SX
This command is supported in the Cisco IOS Release 12.2SX train. Support in a specific 12.2SX release of this train depends on your feature set, platform, and platform hardware.
12.2(33)SB
This command was integrated into Cisco IOS Release 12.2(33)SB.
Usage Guidelines
Use the tclsh command when you want to run Tcl commands from the Cisco IOS command-line interface (CLI). When the interactive Tcl shell is enabled and Tcl configuration mode is entered, Tcl commands can be entered line by line or a predefined Tcl script can be run. After Tcl commands are entered they are sent to a Tcl interpreter. If the commands are recognized as valid Tcl commands, the command is executed and the result is sent to the tty. If a command is not a recognized Tcl command, it is sent to the Cisco IOS CLI parser. If the command is not a Tcl or Cisco IOS command, two error messages will be displayed.
A predefined Tcl script can be created outside of Cisco IOS software, transferred to Flash or disk memory, and run within Cisco IOS software. It is also possible to create a Tcl script and precompile the code before running it under Cisco IOS.
Use the exit or the tclquit command to disable the use of the Tcl shell and return to privileged EXEC mode.
Examples
The following example shows how to enable the Tcl interactive shell:
Router# tclsh
Router(tcl)#
Related Commands
Command
Description
scriptingtclencdir
Specifies the default location of external encoding files used by the Tcl shell.
scriptingtclinit
Specifies an initialization script for the Tcl shell.