INTO OUTFILE Error 2


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers INTO OUTFILE Error 2
# 1  
Old 06-22-2019
INTO OUTFILE Error 2

Good day, I am trying to run the following command but it does not seem to work.

Code:
[root@ ]# mysql -pPassword asteriskcdrdb -s -b -e "select 'Account ID','Destination','Operator','Provider','Date','BillSec','Rate id','Cost' UNION select accountcode,dst,'PBX',route_name,date_format(calldate,'%Y/%c/%e %H:%i'),billsec as Duration,route_id,round(cost,5) from cdr where calldate > '$prev_date' and calldate < '$cur_date' and cost > 0 and accountcode='$accountcode' UNION select '','','','','','',concat('R',sum(round(cost,5))),'' from cdr where calldate > '$prev_date' and calldate < '$cur_date' and cost > 0 and accountcode='$accountcode' INTO OUTFILE '/tmp/VoipBilling-$date/CDR/$accountcode-$date.csv' FIELDS TERMINATED BY ',';"

Error is: ERROR 1 (HY000) at line 1: Can't create/write to file '/tmp/VoipBilling-/CDR/-.csv' (Errcode: 2)

Note the filepath in the error code and the filepath specified differs. Almost as if Mariadb does not know to create the folder with the date i.e /tmp/VoipBilling-2019-06-22/CDR/BILLTEST-2019-06-22.csv''

Instead it wants to write it as '/tmp/VoipBilling-/CDR/-.csv'

When I run the same command but change the output path to not use the $date it works. i.e
Code:
[root@ ]# mysql -pPassword asteriskcdrdb -s -b -e "select 'Account ID','Destination','Operator','Provider','Date','BillSec','Rate id','Cost' UNION select accountcode,dst,'PBX',route_name,date_format(calldate,'%Y/%c/%e %H:%i'),billsec as Duration,route_id,round(cost,5) from cdr where calldate > '$prev_date' and calldate < '$cur_date' and cost > 0 and accountcode='$accountcode' UNION select '','','','','','',concat('R',sum(round(cost,5))),'' from cdr where calldate > '$prev_date' and calldate < '$cur_date' and cost > 0 and accountcode='$accountcode' INTO OUTFILE '/tmp/VoipBilling/CDR/accountcode.csv' FIELDS TERMINATED BY ',';"

So it is safe to say this is not a folder permision but the command not being able to create the folder with $date specified.

Please assist
# 2  
Old 06-22-2019
Does date have spaces in it like June 10 2019? Plus the date shell variable is likely not being expanded when inside single quotes,
e.g., '$cur_date'.
# 3  
Old 06-22-2019
So I change use $cur_date as:

Code:
$cur_date

instead of
Code:
'$cur_date'

?

--- Post updated at 01:20 AM ---

Also,

Date should be displayed as 2019-06-22
# 4  
Old 06-22-2019
What you have to do (I did this with oracle) is to "format stuff" to preserve translated (expanded values) of you variables. For oracle the single quotes had to still be in there to delimit the "fixed" strings I am guessing you have the same requirement.

Simplified example:
Code:
#!/bin/bash
# example.sh
cur_date="2019-06-22"
printf " '%s' " "$cur_date"

run example.sh
Code:
$./example.sh
 '2019-06-22'
$

If you need more help get back to us.
# 5  
Old 06-23-2019
The start of my script contains

Code:
#!/bin/bash
date=`date +%F`
prev_date=`date --date='-1 month' '+%Y-%m-25 00:00:00'`
cur_date=`date --date='now' '+%Y-%m-25 00:00:00'`
mkdir /tmp/VoipBilling-$date
mkdir /tmp/VoipBilling-$date/CDR
mkdir /tmp/VoipBilling-$date/Summary

When I do the following it creates the file with the date specified

Code:
mkdir /file-$date

--- Post updated at 11:47 AM ---

When I run the script I get the following error

Code:
ERROR 1 (HY000) at line 1: Can't create/write to file '/tmp/VoipBilling-2019-06-23/Summary/POSTPAID-SUMMARY-2019-06-23.csv' (Errcode: 2)
ERROR 1 (HY000) at line 1: Can't create/write to file '/tmp/VoipBilling-2019-06-23/Summary/PREPAID-SUMMARY-2019-06-23.csv' (Errcode: 2)
ERROR 1 (HY000) at line 1: Can't create/write to file '/tmp/VoipBilling-2019-06-23/Summary/VIRTUAL-PBX-SUMMARY-2019-06-23.csv' (Errcode: 2)
ERROR 1 (HY000) at line 1: Can't create/write to file '/tmp/VoipBilling-2019-06-23/CDR/BILLTEST-2019-06-23.csv' (Errcode: 2)
ERROR 1 (HY000) at line 1: Can't create/write to file '/tmp/VoipBilling-2019-06-23/CDR/BILLTEST2-2019-06-23.csv' (Errcode: 2)

So it is creating the dates correctly but it seems to not be able to write/create the file. Folder permisions should be fine. I run chmod -R 777 /temp/* at the start of the script

Code:
#!/bin/bash
date=`date +%F`
prev_date=`date --date='-1 month' '+%Y-%m-25 00:00:00'`
cur_date=`date --date='now' '+%Y-%m-25 00:00:00'`
mkdir /tmp/VoipBilling-$date
mkdir /tmp/VoipBilling-$date/CDR
mkdir /tmp/VoipBilling-$date/Summary

chmod -R 777 /tmp/*

# 6  
Old 06-25-2019
A script that is creating files with names containing a date set on the 25th day of a few months is not creating diagnostics for dates set on the 23rd day of the month because it was unable to create the files with dates on the 25th of the month. Therefore, the diagnostics you showed us did not come from the script you showed us.

Are other variables in your script trying to create files with dates from the 23rd of the month? Do you need to be creating files with the day of the month set to the 23rd instead of the 25th?
# 7  
Old 06-26-2019
Hi,

No it needs to be on the 25th of the month but I would like to test to see if the script works fine.

I changed the cur_date to the following to test

Code:
cur_date=`date --date='now' '+%Y-%m-26 00:00:00'`

to test the script now but still get
Code:
ERROR 1 (HY000) at line 1: Can't create/write to file '/tmp/VoipBilling-2019-06-26/Summary/POSTPAID-SUMMARY-2019-06-26.csv' (Errcode: 2)
ERROR 1 (HY000) at line 1: Can't create/write to file '/tmp/VoipBilling-2019-06-26/Summary/PREPAID-SUMMARY-2019-06-26.csv' (Errcode: 2)
ERROR 1 (HY000) at line 1: Can't create/write to file '/tmp/VoipBilling-2019-06-26/Summary/VIRTUAL-PBX-SUMMARY-2019-06-26.csv' (Errcode: 2)
ERROR 1 (HY000) at line 1: Can't create/write to file '/tmp/VoipBilling-2019-06-26/CDR/BILLTEST-2019-06-26.csv' (Errcode: 2)
ERROR 1 (HY000) at line 1: Can't create/write to file '/tmp/VoipBilling-2019-06-26/CDR/BILLTEST2-2019-06-26.csv' (Errcode: 2)

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Solaris

Solaris 10 error "-sh: /tmp/outfile: cannot create"

Hello, Each time a user log on to host, they receive below error: -sh: /tmp/outfile: cannot create Example: $ ssh host user@host's password: Last login: Fri Dec 4 08:17:28 2015 from client.ref |-----------------------------------------------------------------| -sh:... (2 Replies)
Discussion started by: feroccimx
2 Replies

2. UNIX for Dummies Questions & Answers

xls2csv.py won't print to outfile

Hi, I'm trying to use pyExcelerator's module "xls2csv" converter in ubuntu. The following works great, except the standard out is in the terminal. sudo python xls2csv.py test.xls I want the csv delimited output to be redirected to a file. When I enter.... sudo python xls2csv.py test.xls... (5 Replies)
Discussion started by: jdilts
5 Replies

3. UNIX for Dummies Questions & Answers

Outfile

Hi guys! So I have a program that allows the user to enter a file, change some characters (for example, a changes to t, etc.) and then save the new file under a new name. However, I need to press carriage return twice for the program to end. I was just wondering if anyone knew of a way for the... (2 Replies)
Discussion started by: PerlNutt
2 Replies

4. Shell Programming and Scripting

Copying the Header & footer Information to the Outfile.

Hi I am writing a perl script which checks for the specific column values from a file and writes to the OUT file. So the feed file has a header information and footer information. I header information isaround107 lines i.e. Starts with START-OF-FILE ....... so on .... ... (11 Replies)
Discussion started by: filter
11 Replies

5. Shell Programming and Scripting

Difference of two data files & writing to an outfile.

Hi Everyone, I have two files i.e. one file2 contains today's data and the other file1 contains Yesterday's data. The data in the files contains 226 columns and the data for the coulums separated by a Pipe "|" delimiter. Now, I have 4 Primary keys (coulumns) by which I have to compare file2 and... (10 Replies)
Discussion started by: filter
10 Replies

6. Programming

"cout = outFile" is not compiled

Hello, Compilation of the line "cout = outFile" throws error "Error: std::ios_base::operator=(const std::ios_base&) is not accessible from std::ios ::operator=(const std::ios &)." outFile is declared as "static ofstream". Thanks, Shafi (3 Replies)
Discussion started by: shafi2all
3 Replies

7. Shell Programming and Scripting

print to more than one outfile AWK

I'd like to do an if / else if condition and print to different files. Something like: awk '{ if ($1 == "yes") print $2, $4 < infile > outfile1 ; else if ($1 == "No") print $2, $4 < infile > outfile2 }' Obviously I don't know the syntax. Thanks so much. (5 Replies)
Discussion started by: dcfargo
5 Replies

8. UNIX for Dummies Questions & Answers

How to outfile contant as an input for a command

I`m having output file which contain following no which changes every time i run script.The number given below are there in file and i have to fatch them from file. 12 15 56 158 365 165 598 568 265 256 258 now i want to use above number from output to input as $j r=`/omp/bin/ICIC... (1 Reply)
Discussion started by: nitin_aaa27
1 Replies

9. Shell Programming and Scripting

How to extract some parts of a file to create some outfile

Hi All, I am very new in programming. I need some help. I have one input file like: Number of disabled taxa: 9 Loading mapping file: ncbi.map Load mapping: taxId2TaxLevel: 469951 --- Subsample reads (20%): 66680 of 334386 Processing: tree-from-summary Running tree-from-summary... (21 Replies)
Discussion started by: iammitra
21 Replies

10. Shell Programming and Scripting

Setting outfile with (brackets)

I have a file that comes in as 20081002_invoices.txt and needs to go out as invoices(20081002).xls When ran this file should have three seperate fields as follows: column1 column2 column3 data1 data2 data3 when i run the script it produces the invoices(20081002).xls but moves... (1 Reply)
Discussion started by: Pablo_beezo
1 Replies
Login or Register to Ask a Question