Linux & Unix Commands Every Informatica Support Engineer Must Know
On this page
If you are preparing for an Informatica Support Engineer interview, the Linux and Unix section is almost guaranteed to come up.
Interviewers want to know one thing: can you actually sit at a terminal and solve a production problem?
This post covers every command you need - organised by category - with real Informatica use cases so you know exactly why each one matters on the job.
Who This Post Is For
Informatica PowerCenter support engineers preparing for interviews
ETL support engineers who work on Linux/Unix servers
Anyone asked "tell me some Linux commands you use daily" in a data engineering interview
Essential Environment Variables to Know First
Before any command will work correctly, Informatica depends on these environment variables being set. You will be asked about these.
Variable | Purpose |
|---|---|
| Root directory of the Informatica installation (e.g. |
| Oracle client installation path |
| Shared library path for Informatica and database drivers |
| Must include |
| Path to |
| Directory containing |
| Encrypted password for the truststore (set using |
To verify they are set correctly:
printenv INFA_HOME
env | grep -i infa
echo $LD_LIBRARY_PATH
To load them if missing:
source /home/infa_user/.bash_profile
source $INFA_HOME/infaenv.sh # or your team's custom env script
Note:
infaenv.shis a site-specific script, not a fixed product path. Make sureinfaenv.shand anypmcmd/pmrepcommands run in the same shell invocation, otherwise the environment changes will not be inherited by the child process.
1. Navigation & File System
These are the first commands you touch every time you log into the server.
pwd - Print current directory
pwd
Use it to confirm you are in the right directory before editing config files or running scripts.
ls - List directory contents
ls -lh /infa/server/infa_shared/SessLogs/
ls -lt | head -20 # Most recently modified files first
ls -la $INFA_HOME # Include hidden files
Use it to check session logs, parameter files, and landing directories.
cd - Change directory
cd $INFA_HOME
cd /infa/server/infa_shared/SessLogs
cd .. # Go one level up
cd ~ # Go to home directory
find - Search for files by name, type, date, or size
find /infa -name "*.log" -mtime -1 # Logs modified in last 24 hours
find . -name "SDE_*.log" -type f # Informatica session logs by pattern
find /infa/server -name "pmserver.log" # Find the main server log
find . -size +100M # Files over 100MB (disk space issues)
This is one of the most powerful commands for support work. Know it well.
Interview Tip:
"How would you find all session logs from the last 24 hours?" -
find /infa/server/infa_shared/SessLogs -name "*.log" -mtime -1
2. File Operations
Day-to-day file management on the Informatica server.
cp - Copy files
cp param_file.txt param_file.txt.bak
cp -r /infa/server/infa_shared /backup/infa_shared_$(date +%F)
Always back up parameter files before editing them in production.
mv - Move or rename files
mv workflow.log workflow_$(date +%F).log
mv /infa/landing/data.csv /infa/archive/
rm - Remove files
rm -f *.bad
rm -rf /infa/server/infa_shared/Cache/old_cache/
find . -name "*.log" -mtime +30 -exec rm -f {} \; # Delete logs older than 30 days
Interview Tip:
Be careful with
rm -rf. Interviewers may ask how you handle disk space issues - mention cleaning up old session logs, bad files, and cache withfind + -exec rm.
mkdir - Create directories
mkdir -p /infa/landing/project1
mkdir -p /infa/server/infa_shared/SessLogs/archive
touch - Create an empty file or update its timestamp
touch /infa/landing/trigger.done # Create a trigger file for file-watcher workflows
3. File Permissions & Ownership
Permissions issues are one of the top causes of Informatica job failures.
chmod - Change file permissions
chmod 755 start_informatica.sh # Owner can read/write/execute, others can read/execute
chmod 644 /infa/params/param_file.txt # Owner can read/write, others can only read
chmod -R 755 /infa/server/bin/ # Apply recursively
chown - Change file owner
chown infa_user:infa_grp /infa/server/
chown -R infa_user /infa/server/infa_shared/SessLogs/
Interview Tip:
"A session failed with a permission error - what do you check?" Answer:
ls -lon the source/target file and directory. Check if the Informatica service account (infa_user) has read/write access. Fix withchmodandchown.
4. Viewing File Contents
cat - Display full file contents
cat /infa/params/param_file.txt
cat pmserver.log
head - Show the first N lines
head -20 session.log
head -5 /infa/landing/customers.csv # Check header and first few rows of a flat file
tail - Show the last N lines. -f follows the file live
tail -100 pmserver.log
tail -f /infa/server/infa_shared/SessLogs/SDE_Customer_Load.log
tail -50 workflow.log | grep -i error
tail -f is one of the most used commands in production support. You use it to watch a session log in real time while a workflow runs.
less - Browse large files without loading them fully into memory
less /infa/server/infa_shared/SessLogs/SDE_Large_Load.log
less +G file.log # Open at the end of the file
Inside less: use /error to search, n for next match, q to quit.
wc - Count lines, words, or characters
wc -l /infa/landing/customers.csv # Count rows in a flat file
grep -i "error" session.log | wc -l # Count errors in a log
5. Search & Grep
grep is arguably the most important command for Informatica support work.
grep - Search file contents for patterns
grep -i "error" SDE_Customer_Load.log
grep -in "fatal\|error\|warning" pmserver.log # Case-insensitive, with line numbers
grep -r "ORA-" /infa/server/infa_shared/SessLogs/ # Search all logs recursively
grep -v "^#" param_file.txt # Skip comment lines in param files
grep "Total rows" session.log # Find row count lines
grep with context lines:
grep -A 5 "ERROR" session.log # Show 5 lines after each match
grep -B 2 -A 10 "Execution failed" pmserver.log
Interview Tip:
"How do you find errors in a session log?"
grep -in "error\|warning\|fatal\|aborted" session.log
6. Text Processing
awk - Extract columns and perform calculations on structured data
awk -F',' '{print $1, $3}' customers.csv # Print columns 1 and 3
awk 'NR>1{sum++} END{print sum}' data.csv # Count rows excluding header
awk '/Total rows/{print $NF}' session.log # Extract row count from log
awk -F'|' '{print NF; exit}' data.txt # Check column count
sed - Stream editor for in-place text modifications
sed -i 's/OLD_VALUE/NEW_VALUE/g' param_file.txt # Replace text in a file
sed -n '100,200p' session.log # Print lines 100 to 200
sed '/^$/d' file.txt # Remove blank lines
sed 's/\r//' windows_file.txt # Remove Windows carriage returns
cut - Extract specific fields from delimited text
cut -d',' -f1,3 customers.csv
cut -d'|' -f2 transactions.txt | sort | uniq -c
sort and uniq - Sort and deduplicate data
sort -t',' -k2 customers.csv
sort file.txt | uniq -d # Show duplicate lines
sort file.txt | uniq -c | sort -rn # Count occurrences, most frequent first
tr - Translate or delete characters
tr ',' '|' < input.csv > output.psv # Convert delimiter
tr -d '\r' < windows.txt > unix.txt # Remove carriage returns
7. Process Management
ps - List running processes
ps -ef | grep pmserver # Check if Integration Service is running
ps -ef | grep pmrep # Check repository agent
ps aux | grep -i informatica
top - Real-time process and resource monitor
top
top -u infa_user # Show only Informatica user processes
kill - Stop a process
kill -9 <PID> # Force kill (last resort)
kill -15 <PID> # Graceful terminate
killall -9 pmserver
nohup - Run a process that survives terminal logout
nohup ./start_infa.sh &
nohup pmcmd startworkflow ... > /tmp/wf_run.log 2>&1 &
Use nohup when starting services over SSH so they don't stop when you disconnect.
Interview Tip:
"How do you check if the Informatica Integration Service is running?"
ps -ef | grep pmserver- if you see apmserverprocess, it is running.
8. Disk & Memory
Disk full is one of the most common causes of Informatica session failures.
df - Check disk space
df -h # All file systems, human-readable
df -h /infa # Check the Informatica mount point specifically
du - Check what is using the disk space
du -sh /infa/server/infa_shared/*
du -sh * | sort -rh | head -10 # Find the largest directories
free - Check memory
free -h
free -m
Interview Tip:
"A workflow failed - what do you check first?"
df -hfor disk space.ps -ef | grep pmserverfor service status.tail -f session.logfor the error message. These three cover 80% of production failures.
9. Network & Connectivity
ping - Test basic connectivity
ping -c 4 oracle_db_host
ping infa_repository_host
telnet / nc - Test TCP port connectivity
telnet oracle_host 1521 # Test database listener port
nc -vz infa_host 6005 # Test Integration Service port
nc -vz infa_host 6001 # Test Repository Service port
netstat / ss - Check which ports are listening
netstat -tlnp | grep 6005
ss -tlnp | grep 6400
netstat -an | grep ESTABLISHED | grep 1521
nslookup - Resolve hostnames
nslookup oracle_db_host
nslookup infa_repository_host
Interview Tip:
"A workflow failed with a database connection error - what do you check?"
ping db_host, thentelnet db_host 1521, thennetstat -an | grep 1521. This tells you whether the problem is network, port, or connection pool.
10. Archive & Compression
tar - Archive and compress directories
# Create a compressed archive of session logs
tar -czvf sesslogs_$(date +%F).tar.gz /infa/server/infa_shared/SessLogs/
# Extract an archive
tar -xzvf backup.tar.gz -C /restore/
# List archive contents without extracting
tar -tzvf archive.tar.gz
gzip / gunzip - Compress or decompress single files
gzip -k session.log # Compress (keep original)
gunzip data.csv.gz # Decompress
zcat data.csv.gz | head -5 # View compressed file without extracting
zgrep - Search inside compressed log files
zgrep -i "ORA-" sesslogs_archive.tar.gz
zcat session_20240101.log.gz | grep -i error
11. SSH & File Transfer
ssh - Connect to the Informatica server
ssh infa_user@infa_server_host
ssh -i ~/.ssh/infa_key.pem infa_user@server
scp - Copy files securely between servers
scp param_file.txt infa_user@server:/infa/params/
scp infa_user@server:/infa/server/infa_shared/SessLogs/session.log .
scp -r /infa/scripts/ infa_user@server:/infa/scripts/
sftp - Interactive secure file transfer
sftp infa_user@sftp_server
sftp> put /local/data.csv /remote/landing/
sftp> get /remote/file.csv /local/infa/landing/
12. Cron Jobs & Scheduling
crontab - Schedule recurring commands
crontab -l # List current cron jobs
crontab -e # Edit cron jobs
crontab -l -u infa_user # List another user's cron jobs
Cron syntax example:
# Minute Hour Day Month Weekday Command
0 1 * * * find /infa/SessLogs -mtime +7 -exec rm {} \;
30 6 * * 1 /infa/scripts/weekly_cleanup.sh
Informatica support teams commonly use cron for:
Log cleanup and archival
Pre-session file checks (file watcher scripts)
Starting services after scheduled maintenance
13. Informatica-Specific Commands
These are the commands that set an Informatica support engineer apart from a general Linux user.
Key Log File Locations
Session logs: $INFA_HOME/server/infa_shared/SessLogs/
Workflow logs: $INFA_HOME/server/infa_shared/WorkflowLogs/
Node log: $INFA_HOME/tomcat/logs/node.log
Service logs: $INFA_HOME/server/infa_shared/log/
pmcmd - Control Workflows from the Command Line
# Start a workflow
pmcmd startworkflow \
-sv IntegrationServiceName \
-d DomainName \
-u admin -p password \
-f FolderName \
WF_Customer_Load
# Stop a workflow
pmcmd stopworkflow \
-sv IntegrationServiceName \
-d DomainName \
-u admin -p password \
-f FolderName \
WF_Customer_Load
# Get workflow status
pmcmd getworkflowdetails \
-sv IntegrationServiceName \
-d DomainName \
-u admin -p password \
-f FolderName \
WF_Customer_Load
# Start a specific session task inside a workflow
pmcmd starttask \
-sv IntegrationServiceName \
-d DomainName \
-u admin -p password \
-f FolderName \
WF_Customer_Load s_Customer_Load
pmrep - Manage the Repository from the Command Line
# Connect to repository
pmrep connect -r RepositoryName -d DomainName -u admin -p password
# List all workflows in a folder
pmrep listobjects -o workflow -f FolderName
# Export a workflow to XML
pmrep objectexport \
-n WF_Customer \
-o workflow \
-f FolderName \
-m -s -b -u \
-e output.xml
# Backup the repository
pmrep backup -o /backup/repo_backup.rep
# Restore the repository
pmrep restore -i /backup/repo_backup.rep
infacmd - Manage Domain and Services
Path note:
infacmdandinfasetuplive at$INFA_HOME/isp/bin/infacmd.sh. If your$PATHdoes not include that directory, use the full path.
# List all services in the domain
infacmd.sh ListServices -dn DomainName -un admin -pd password
# Start a service
infacmd.sh StartService -dn DomainName -sn IntegrationServiceName -un admin -pd password
# Stop a service
infacmd.sh StopService -dn DomainName -sn IntegrationServiceName -un admin -pd password
# Get service status
infacmd.sh GetServiceStatus -dn DomainName -sn IntegrationServiceName -un admin -pd password
Starting and Stopping Informatica Services
# Start the Informatica node
$INFA_HOME/tomcat/bin/infaservice.sh startup
# Stop the Informatica node
$INFA_HOME/tomcat/bin/infaservice.sh shutdown
# Verify the service started
ps -ef | grep pmserver
# Watch the startup log
tail -f $INFA_HOME/tomcat/logs/node.log
pmpasswd - Encrypt Passwords for Scripts
pmpasswd MyPassword
Never store plain-text passwords in shell scripts. Use pmpasswd to generate an encrypted value and use that in pmcmd/pmrep scripts.
14. Log Analysis Workflow
This is the process you should walk through in any "workflow failed" scenario question.
Step 1 - Check if the service is running:
ps -ef | grep pmserver
Step 2 - Check disk space:
df -h /infa
Step 3 - Find the session log:
find /infa/server/infa_shared/SessLogs -name "SDE_*.log" -mtime -1
Step 4 - Check for errors:
grep -in "error\|fatal\|warning\|aborted" session.log
Step 5 - View surrounding context:
grep -A 10 "Execution failed" session.log
Step 6 - Monitor a live run:
tail -f session.log | grep -i "error\|rows affected\|success"
Step 7 - Check network connectivity (if database error):
telnet oracle_db_host 1521
Quick Reference Table
Task | Command |
|---|---|
Check disk space |
|
Find large directories |
|
Check if pmserver is running |
|
Monitor session log live |
|
Find errors in log |
|
Count rows in flat file |
|
Test database port |
|
Back up a directory |
|
Set INFA_HOME |
|
Start a workflow |
|
Check service status |
|
Archive old logs |
|
Conclusion
Linux and Unix skills are not optional for an Informatica support engineer - they are fundamental to the job.
Every production issue you solve will involve a terminal. Whether it is checking disk space, reading a session log, testing database connectivity, or running pmcmd to restart a failed workflow, the command line is where the real work happens.
The commands in this post cover what you will actually use day to day. Focus on the log analysis section and the Informatica-specific commands - those are what interviewers care most about.
If this post was useful, check out the companion post: What to Prepare for an Informatica Admin Interview (PowerCenter + IDMC)
Tags: #Informatica #Linux #Unix #ETL #PowerCenter #DataEngineering #SupportEngineer #pmcmd #pmrep
